After upgrade, rclone sync wants to do a full copy not just of deltas

( A catchup for the people who didn't read the github issue; it looks like Microsoft are migrating some drives to a different backend infrastructure which only has 1s accuracy; the fix is to revert the 1ms timing; a work-around is to add --modify-window 1s )

But I just noticed another fun consequence to this migration.

I'd noticed on my "bad" drive that it was reporting nothing in trash

OneDriveBackups:        OneDriveBackups2:       OneDriveBackups3:
====================    ====================    ====================
Total:   1.005 TiB      Total:   1.005 TiB      Total:   1.005 TiB
Used:    965.400 GiB    Used:    773.100 GiB    Used:    230.800 GiB
Free:    63.600 GiB     Free:    255.900 GiB    Free:    798.200 GiB
Trashed: 1.686 TiB      Trashed: 239.269 GiB    Trashed: 0 B

This is clearly wrong; I can see stuff in there from the webUI :slight_smile:

So I took a look at the dump body output of rclone about for a "good" and a "bad" (migrated) drive. In both cases the request is GET /v1.0/drives/xxxxx HTTP/1.1

But the responses...

Good (not migrated; 1ms drive):

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives/$entity",
  "driveType": "personal",
  "id": "XXX",
  "owner": {
    "user": {
      "displayName": "XXX",
      "id": "XXX"
    }
  },
  "quota": {
    "deleted": 256913083688,
    "remaining": 274770532761,
    "state": "normal",
    "total": 1104880336896,
    "used": 830109804135,
    "storagePlanInformation": {
      "upgradeAvailable": false
    }
  }
}

And the bad (migrated, 1s accuracy)

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives/$entity",
  "createdDateTime": "2024-09-22T13:48:05Z",
  "description": "",
  "id": "XXX",
  "lastModifiedDateTime": "2024-10-09T13:47:55Z",
  "name": "OneDrive",
  "webUrl": "https://my.microsoftpersonalcontent.com/personal/XXX/Documents",
  "driveType": "personal",
  "createdBy": {
    "user": {
      "displayName": "SharePoint App"
    }
  },
  "lastModifiedBy": {
    "user": {
      "displayName": "System Account"
    }
  },
  "owner": {
    "user": {
      "email": "XXX",
      "displayName": "XXX"
    }
  },
  "quota": {
    "deleted": 0,
    "remaining": 854591117721,
    "state": "normal",
    "total": 1104880336896,
    "used": 250289219175,
    "storagePlanInformation": {
      "upgradeAvailable": false
    }
  }
}

This really highlights the different backends cos the JSON is quite different.

And this definitely looks like a bug in the backend of the new migrated drive! The API is returning zero in the "deleted" attribute.

Thanks, Microsoft. You always make things "fun".

2 Likes