diff --git a/src/vs/platform/userDataSync/common/extensionsSync.ts b/src/vs/platform/userDataSync/common/extensionsSync.ts index df6dfb1fa4fb37ac70fc3d7bc385cd07b984c057..56c8980f8eac5ee548a57c791202d327c2fb4481 100644 --- a/src/vs/platform/userDataSync/common/extensionsSync.ts +++ b/src/vs/platform/userDataSync/common/extensionsSync.ts @@ -357,11 +357,11 @@ export class ExtensionsSynchroniser extends AbstractSynchroniser implements IUse if (added.length || updated.length) { await Promise.all([...added, ...updated].map(async e => { - const installedExtension = installedExtensions.filter(installed => areSameExtensions(installed.identifier, e.identifier))[0]; + const installedExtension = installedExtensions.find(installed => areSameExtensions(installed.identifier, e.identifier)); // Builtin Extension: Sync enablement and state if (installedExtension && installedExtension.isBuiltin) { - if (e.state) { + if (e.state && installedExtension.manifest.version === e.version) { const extensionState = JSON.parse(this.storageService.get(e.identifier.id, StorageScope.GLOBAL) || '{}'); forEach(e.state, ({ key, value }) => extensionState[key] = value); this.storageService.store(e.identifier.id, JSON.stringify(extensionState), StorageScope.GLOBAL);