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. --Type: <bBug</bSteps to Reproduce: VS Code for portable offline mode usage (there's no internet for corp's rules); profile - get 'XHR failed' error; local profile to file .code-profile (only installed extensions); to import received profile on same PC or share it to another - get 'XHR failed' error; to created/imported profile and check extensions (list is almost blank, despite of a lot of items during the creation); /Importing thus profile at PC with internet cause no errors VS Code version: Code 1.80.0 (, 2023-07-04T15:06:02.407Z) OS version: Windows_NT x64 10.0. Modes: <details<summaryExtensions (31)</summaryExtensionVersion ------ better-comments3.0.2 project-manager12.7.0 project-templates1.2.0 doxdocgen1.4.0 arm1.7.4 overtype0.5.0 gitlab-workflow3.68.0 activitusbar0.0.47 vscode-test-explorer2.21.1 vscode-drawio1.6.6 shortcut-menu-bar3.0.4 cortex-debug1.12.0 debug-tracker-vscode0.0.15 memory-view0.0.22 peripheral-viewer1.4.6 rtos-views0.0.7 git-graph1.30.0 compare-folders0.22.5 vscode-language-pack-ru1.80. cpptools1.16.3 cpptools-extension-pack1.3.0 live-server0.4.9 test-adapter-converter0.1.8 material-icon-theme4.28.0 vscode-coverage-gutters2.11.0 code-spell-checker2.20.5 code-spell-checker-russian2.0.9 vscode-icons12.4.0 debug0.26.1 markdown-all-in-one3.5.1 markdown-editor0.1.10 </details<!-- generated by issue reporter --! !
this problem was since profile's release and not so important number or list of extensions
Importing a profile will not work if you do not have network, as the extensions are installed from Marketplace. But it should not happen when you create the profile. Can you please let us know what do you see when you create the profile?
sad to hear it, such a useful tool for sharing work environment with colleagues as a devops; extensions could be installed from vsix or simple coping between PC's nor than installed from Marketplace. There is at least two different behaviors. First case creating profile: user gets the same 'XHR failed' error, still profile creates and you can switch to it and see it's content almost blank ! ! Second one: user exports default profile to local .code-profile file. In this case import accomplish correct, but when user try to import created profile he gets 'XHR failed' error Such a weird behavior leads to frustration, cose it's seems pretty logical that local profile could be just copied to another PC and imported without any requirements such a internet connection and so on. As for me it's not the obvious behavior
Importing a profile will not work even if you have network:
Are you creating the profile from current profile?
Yep, from default profile
Agreed that creating a profile from a profile that is existing in VS Code should not need network connectivity. But creating a profile from the template needs network connectivity. Because, the template has just extension id and therefore it is required to resolve the id to an extension.

Discussion:
if (source instanceof URI) { this.telemetryService.publicLog2<CreateProfileInfoEvent, CreateProfileInfoClassification>('userDataProfile.createFromTemplate', createProfileTelemetryData); await this.importProfile(source, { mode: 'apply', name: result.name, useDefaultFlags }); <ins> } else if (isUserDataProfile(source)) { this.telemetryService.publicLog2<CreateProfileInfoEvent, CreateProfileInfoClassification>('userDataProfile.createFromProfile', createProfileTelemetryData); await this.createFromProfile(source, result.name, { useDefaultFlags }); </ins> } else if (isUserDataProfileTemplate(source)) { source.name = result.name; this.telemetryService.publicLog2<CreateProfileInfoEvent, CreateProfileInfoClassification>('userDataProfile.createFromExternalTemplate', createProfileTelemetryData); await this.createAndSwitch(source, false, true, { useDefaultFlags }, localize('create profile', "Create Profile")); <del> } else if (source) { this.telemetryService.publicLog2<CreateProfileInfoEvent, CreateProfileInfoClassification>('userDataProfile.createFromProfile', createProfileTelemetryData); await this.createFromProfile(source, result.name, { useDefaultFlags }); </del> } else { this.telemetryService.publicLog2<CreateProfileInfoEvent, CreateProfileInfoClassification>('userDataProfile.createEmptyProfile', createProfileTelemetryData); await this.userDataProfileManagementService.createAndEnterProfile(result.name, { useDefaultFlags });

} } <del> async createFromProfile(profile: IUserDataProfile, name: string, options?: IUserDataProfileOptions): Promise<void> { </del> <ins> private async createFromProfile(profile: IUserDataProfile, name: string, options?: IUserDataProfileOptions): Promise<void> { </ins> const userDataProfilesExportState = this.instantiationService.createInstance(UserDataProfileExportState, profile); try { const profileTemplate = await userDataProfilesExportState.getProfileTemplate(name, undefined); <del> await this.createAndSwitch(profileTemplate, false, true, options, localize('create profile', "Create Profile")); </del> <ins> await this.progressService.withProgress({ location: ProgressLocation.Notification, delay: 500, sticky: true, }, async progress => { const reportProgress = (message: string) => progress.report({ message: localize('create from profile', "Create Profile: {0}", message) }); const profile = await this.doCreateProfile(profileTemplate, false, false, { useDefaultFlags: this.userDataProfileService.currentProfile.useDefaultFlags }, reportProgress); if (profile) { reportProgress(localize('progress extensions', "Applying Extensions...")); await this.instantiationService.createInstance(ExtensionsResource).copy(this.userDataProfileService.currentProfile, profile, false); reportProgress(localize('switching profile', "Switching Profile...")); await this.userDataProfileManagementService.switchProfile(profile); } }); </ins> } finally { userDataProfilesExportState.dispose(); }

showProfileContents(): Promise<void>; createProfile(from?: IUserDataProfile | URI): Promise<void>; editProfile(profile: IUserDataProfile): Promise<void>; <del> createFromProfile(profile: IUserDataProfile, name: string, options?: IUserDataProfileOptions): Promise<void>; </del> createTroubleshootProfile(): Promise<void>; setProfile(profile: IUserDataProfileTemplate): Promise<void>; }