diff --git a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts index c5c82fc5736..ca4107fb309 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts @@ -673,11 +673,14 @@ class ExtensionsContributions extends Disposable implements IWorkbenchContributi ], icon: installWorkspaceRecommendedIcon, run: async () => { + const outdated = this.extensionsWorkbenchService.outdated; const results = await this.extensionsWorkbenchService.updateAll(); results.forEach((result) => { - if (result.error && result.context?.extension) { - const extension: IExtension = result.context.extension; - runAction(this.instantiationService.createInstance(PromptExtensionInstallFailureAction, extension, extension.latestVersion, InstallOperation.Update, result.error)); + if (result.error && result.context?.extensionIdentifier) { + const extension: IExtension | undefined = outdated.find((extension) => extension.identifier === result.context?.extensionIdentifier); + if (extension) { + runAction(this.instantiationService.createInstance(PromptExtensionInstallFailureAction, extension, extension.latestVersion, InstallOperation.Update, result.error)); + } } }); } diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts index ae61ff5b04d..7e2a2660d0b 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts @@ -1375,7 +1375,7 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension installPreReleaseVersion: extension.local?.isPreReleaseVersion, profileLocation: this.userDataProfileService.currentProfile.extensionsResource, donotIncludePackAndDependencies: true, - context: { extension }, // Provide extension as context in result so result reporting can use its properties + context: { extensionIdentifier: extension.identifier }, // Provide this in result so result reporting can look it up and use its properties } }); }