Fix: VS Code Settings Not Applying
Your settings changes are being ignored. It's almost always scope — User vs Workspace — or a JSON syntax error.
Last updated: October 2026
Open Settings UI with Ctrl+, (or Cmd+,). Search for the setting you changed.
If it shows "Modified in Workspace" or has a blue line, the workspace overrides your user setting. Edit the workspace value, or copy it back to your user settings after removing the workspace override.
Why this happens
VS Code settings are resolved in four layers, from lowest to highest priority:
| Scope | File location | Applies to |
|---|---|---|
| Default | Built-in | Everything (lowest priority) |
| User | ~/Library/.../Code/User/settings.json (macOS)%APPDATA%/Code/User/settings.json (Win) | All VS Code windows |
| Workspace | .vscode/settings.json inside the project | Only that project |
| Workspace Folder | .vscode/settings.json in multi-root folders | Specific folder in multi-root |
Higher priority wins. If a workspace setting conflicts with a user setting, the workspace wins — silently. That's usually why "my setting isn't working."
Workspace override (most common)
You changed a setting in User settings, but the workspace has a different value that's overriding it.
How to check:
- Open Settings UI with Ctrl+,
- Search for the setting
- Look for a blue line under the input — that indicates a Workspace override
- Click the gear icon → "Reset Setting" to remove the workspace value
Or inspect the file directly:
# In your project folder
ls -la .vscode/settings.json
# If it exists, open it — see what's overriding your user settings
Pro tip: Workspace settings are intentional. They exist so a project can enforce its own rules — like 2-space indentation for a specific repo. If you want your user setting to win, remove the workspace value.
JSON syntax error
A single broken character makes VS Code ignore the entire settings file. VS Code usually highlights this, but not always.
Common syntax errors:
// ❌ Trailing comma — invalid JSON
{
"editor.fontSize": 14,
"editor.tabSize": 2,
}
// ❌ Missing quote
{
editor.fontSize: 14
}
// ❌ Comment in a strict JSON file
{
// this comment breaks the file
"editor.fontSize": 14
}
// ✅ Valid JSON
{
"editor.fontSize": 14,
"editor.tabSize": 2
}
Wait — doesn't VS Code support comments in settings.json?; Yes, VS Code uses "JSON with Comments" for its own config files. But if you're editing a different file (like package.json), comments will break it. Check which file you're editing.
How to verify: Paste the file contents into jsonlint.com. If it fails, that's your problem.
Extension has a companion setting
You changed a setting, but an extension's own setting is overriding it. Extensions can register their own settings that behave differently.
Example: You set editor.formatOnSave: true. But Prettier's prettier.requireConfig is true, so it only formats files that have a Prettier config. If the file doesn't have one, formatting is skipped.
How to check:
- Search Settings UI for the same key prefix (e.g.,
prettier.,eslint.,github.copilot.) - Read what each setting does
- Look for settings that gate behavior (enable/disable toggles)
Pro tip: Right-click the setting in Settings UI and choose "Copy Setting as JSON". This shows you the exact key path, so you can search for related settings.
Window needs a reload
Some settings apply immediately. Others need a window reload to take effect. If you're not sure, reload.
# Open the Command Palette
Ctrl+Shift+P (Windows/Linux)
Cmd+Shift+P (macOS)
# Run:
> Developer: Reload Window
Settings that need a reload:
- Language server settings
- Extension toggles
- Terminal profile changes
- Font changes (sometimes)
Extension host crashed
If extension-related settings aren't applying, the extension host process may have crashed silently.
Check:
- Bottom status bar — does it show "Extension host not responding"?
- Command Palette → "Developer: Show Running Extensions" — are they all listed?
- Command Palette → "Developer: Open Extension Logs Folder" — check for crash reports
# Restart the extension host without restarting VS Code
Command Palette → Developer: Restart Extension Host
🛡️ How to prevent settings confusion
- Commit workspace settings to git. If your project has
.vscode/settings.json, commit it so the whole team gets the same config. - Comment your settings. VS Code settings files support comments (it's technically JSONC). Add a comment explaining why each setting exists.
- Keep user settings small. Only put truly global preferences in user settings. Project-specific stuff belongs in the workspace.
- Use Settings Sync. Enable VS Code Settings Sync (built-in) so user settings follow you across machines.
- Know the scope you're editing. Settings UI shows "User" or "Workspace" tabs — always check which one you're on.
❓ Frequently asked questions
Why are my VS Code settings not applying?
Most common causes: you edited User settings but a Workspace setting is overriding it, there's a JSON syntax error (trailing comma, missing quote), or an extension has injected its own setting. Check the Settings UI to see which scope is winning.
What is the difference between User and Workspace settings?
User settings apply globally to every VS Code window. Workspace settings apply only to the current project and live in .vscode/settings.json inside the project folder. Workspace settings always override user settings.
How do I know which settings file is winning?
Open the Settings UI (Ctrl+,). Settings that are overridden by a workspace show 'Modified in Workspace'. Settings you edited in User settings but that aren't applying are usually being overridden by a workspace file.
What are VS Code setting scopes?
There are four scopes, in order of priority: Default (built-in), User (your global settings.json), Workspace (.vscode/settings.json in the project), Workspace Folder (for multi-root workspaces). Higher scope wins.
How do I reset VS Code settings to default?
Open Settings UI, search for the setting, and click the gear icon → 'Reset Setting'. For a full reset, delete ~/Library/Application Support/Code/User/settings.json on macOS, or %APPDATA%/Code/User/settings.json on Windows.