diff --git a/chrome/content/zotero/xpcom/sync/syncEngine.js b/chrome/content/zotero/xpcom/sync/syncEngine.js index b61661fba..455e95d67 100644 --- a/chrome/content/zotero/xpcom/sync/syncEngine.js +++ b/chrome/content/zotero/xpcom/sync/syncEngine.js @@ -1691,22 +1691,14 @@ Zotero.Sync.Data.Engine.prototype._fullSync = Zotero.Promise.coroutine(function* for (let key in results.versions) { let version = results.versions[key]; let obj = objectsClass.getByLibraryAndKey(this.libraryID, key); - // If object already at latest version, skip + // If object is already at or above latest version, skip. Local version can be + // higher because, as explained in _uploadObjects(), we upload items in batches + // and only get the last version to record in the database. let localVersion = localVersions[key]; - if (localVersion && localVersion === version) { + if (localVersion && localVersion >= version) { continue; } - // This should never happen - if (localVersion > version) { - Zotero.logError(`Local version of ${objectType} ${this.libraryID}/${key} ` - + `is later than remote! (${localVersion} > ${version})`); - // Delete cache version if it's there - yield Zotero.Sync.Data.Local.deleteCacheObjectVersions( - objectType, this.libraryID, key, localVersion, localVersion - ); - } - if (obj) { Zotero.debug(`${ObjectType} ${obj.libraryKey} is older than remote version`); }