Fix My Error

Stuck? Solved.

Home › Fix Errors › VS Code › Settings Not Applying
Changed settings.json. Saved. Reloaded. Nothing changed.

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

⚡ The 30-second fix

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
DefaultBuilt-inEverything (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 projectOnly that project
Workspace Folder.vscode/settings.json in multi-root foldersSpecific 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."

1

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:

  1. Open Settings UI with Ctrl+,
  2. Search for the setting
  3. Look for a blue line under the input — that indicates a Workspace override
  4. 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.

2

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.

3

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:

  1. Search Settings UI for the same key prefix (e.g., prettier., eslint., github.copilot.)
  2. Read what each setting does
  3. 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.

4

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)
5

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

❓ 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.

🔗 Related fixes

← All VS Code Fixes