Change:
assert.strictEqual(testObject.getValue('configurationService.profiles.testSetting'), 'profileValue'); })); <ins> test('registering normal setting after init', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => { await fileService.writeFile(instantiationService.get(IUserDataProfilesService).defaultProfile.settingsResource, VSBuffer.fromString('{ "configurationService.profiles.testSetting3": "defaultProfile" }')); await testObject.reloadConfiguration(); configurationRegistry.registerConfiguration({ 'id': '_test', 'type': 'object', 'properties': { 'configurationService.profiles.testSetting3': { 'type': 'string', 'default': 'isSet', } } }); assert.strictEqual(testObject.getValue('configurationService.profiles.testSetting3'), 'isSet'); })); test('registering application scope setting after init', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => { await fileService.writeFile(instantiationService.get(IUserDataProfilesService).defaultProfile.settingsResource, VSBuffer.fromString('{ "configurationService.profiles.applicationSetting3": "defaultProfile" }')); await testObject.reloadConfiguration(); configurationRegistry.registerConfiguration({ 'id': '_test', 'type': 'object', 'properties': { 'configurationService.profiles.applicationSetting3': { 'type': 'string', 'default': 'isSet', scope: ConfigurationScope.APPLICATION } } }); assert.strictEqual(testObject.getValue('configurationService.profiles.applicationSetting3'), 'defaultProfile'); })); </ins> test('switch to default profile', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => { await fileService.writeFile(instantiationService.get(IUserDataProfilesService).defaultProfile.settingsResource, VSBuffer.fromString('{ "configurationService.profiles.applicationSetting": "applicationValue", "configurationService.profiles.testSetting": "userValue" }')); await fileService.writeFile(userDataProfileService.currentProfile.settingsResource, VSBuffer.fromString('{ "configurationService.profiles.applicationSetting": "profileValue", "configurationService.profiles.testSetting": "profileValue" }'));

Discussion:
I'm not sure if this only applies when debugging or not, but here is the setup when this happens: a setting, e.g. in the default profile a new <whateverprofile, and ensure that the above setting doesn't exist in it the code to an extension (that will call ) in a window on the default profile debugging the extension a launch config with :bug: see that globalValuetruefalse:bug: see that truefalse Things seem to work fine as long as the default profile doesn't have the value set, but once it does you get the behavior above. /cc
Based on what I could notice, it doesn’t seem to be a debug only issue. It isn’t a problem for most of my extensions (at least no user complained up until now) but I noticed such behavior while working with my Project Manager extension, because the value doesn’t respect the current profile. Then, looking a bit more, I noticed such conflict too, which blocks me from use different settings for each profile, unfortunately. BTW, I created to report the issue
Wondering if you tried insiders to see if this issue still exists?
yes, insiders is my daily driver. And this issue has been around since the beginning of profiles just finally dug more into it to get a better idea of what was happening to report it.
Sorry about this. It is specifically happening for settings contributed by extensions. I am not updating the model after they are registered. Fixed it. To Verify: Create a sample extension with following setting and extension codeInstall this extension in default profile and open update the setting to in user settings Create a new profile from the default profile Reload the window Make sure you see in the console.
thanks -- it fixed the issues I've been seeing.
marking as verified because of comment.