Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --<!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --Settings Sync is broken when trying to access headless code tunnels from the web portal. I have not had this issue in the past and had updates set to manual. Last week I decided to update and that is when Settings Sync broke. I am getting the same results in Edge, Chrome, and Firefox. I am getting the same results in AlmaLinux and Ubuntu Server Does this issue occur when all extensions are disabled?: Yes VS Code Version: 1.81.1 OS Version: AlmaLinux 8.8 (also tested with Ubuntu Server 22.04) Steps to Reproduce: code cli and run tunnel: to '{tunnel-name}/tmp' Settings Sync the Settings Sync log output
Are you able to reproduce this when you enable settings sync on ?
No, I don't get these errors when I enable settings sync on , however most of my extensions are not able to install due to "... is not available in Visual Studio Code for the Web" . It seems to be only when I use tunnels on that I get the errors described in OP.
I just tried the new feature, hoping I could use that in the meantime until this issue is resolved, however, even that is giving me the same Settings Sync errors.
I tried and I do not see any issue. Can you please try installing extensions by going to extension view and see if it works?
Yes, I am able to manually install extensions, however, the issue I am having is with Settings Sync as stated in the original post. Also, the cli output logs is getting flooded with these errors when I enable Settings Sync.
I have confirmed your fix solved my issue. Thank you so much! Looking forward to the August release!
Marking as verified based on the message before.

Discussion:
*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import { ILocalExtension, IGalleryExtension, InstallOptions, InstallVSIXOptions, UninstallOptions, Metadata, DidUninstallExtensionEvent, InstallExtensionEvent, InstallExtensionResult, UninstallExtensionEvent } from 'vs/platform/extensionManagement/common/extensionManagement'; </del> <ins> import { ILocalExtension, IGalleryExtension, InstallOptions, InstallVSIXOptions, UninstallOptions, Metadata, DidUninstallExtensionEvent, InstallExtensionEvent, InstallExtensionResult, UninstallExtensionEvent, InstallExtensionInfo } from 'vs/platform/extensionManagement/common/extensionManagement'; </ins> import { URI } from 'vs/base/common/uri'; import { ExtensionIdentifier, ExtensionType, IExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; import { ExtensionManagementChannelClient as BaseExtensionManagementChannelClient, ExtensionEventResult } from 'vs/platform/extensionManagement/common/extensionManagementIpc';

return super.installFromGallery(extension, installOptions); } <ins> override async installGalleryExtensions(extensions: InstallExtensionInfo[]): Promise<InstallExtensionResult[]> { const infos: InstallExtensionInfo[] = []; for (const extension of extensions) { infos.push({ ...extension, options: { ...extension.options, profileLocation: extension.options?.profileLocation ? (await this.getProfileLocation(extension.options?.profileLocation)) : undefined } }); } return super.installGalleryExtensions(infos); } </ins> override async uninstall(extension: ILocalExtension, options?: UninstallOptions): Promise<void> { options = { ...options, profileLocation: await this.getProfileLocation(options?.profileLocation) }; return super.uninstall(extension, options);