STEP-BY-STEP GUIDE

Use VS Code Extension Bisect to isolate freezes or abnormal behavior

What to do first

Compare extension-free startup and Extension Bisect with consistent files and actions. Confirm candidates in a normal session, choose disablement scope, and prepare reproduction details.

This is a general troubleshooting guide, not an announcement of a current outage.

Affected products and symptoms

Product
Visual Studio Code
Versions and conditions
VS Code desktop

Symptoms

  • Typing or saving becomes unstable after adding extensions
  • Disabling all extensions fixes the issue

Causes and conditions

Extension Bisect halves the enabled extensions to identify the contributor.

Before you start

  • Before changes, record and preserve enabled extension list, workspace name, and reproduction steps.
  • Change one item at a time and record the original symptom after each stage.
  • Record file type, workspace, extension IDs and versions, failing action, and remote environment. Preserve unsaved code and terminal work before repeated reloads and make the same file available in every bisect round.

Precautions

  • Do not bulk-delete unrelated settings or data.
  • Exclude personal data and credentials; share only the necessary parts of enabled extension list, workspace name, and reproduction steps.

Tools and official pages used in this guide

Visual Studio Code troubleshooting sequence: Fix the reproduction; Compare without extensions; Start the bisect; Handle the identified extension; Control conditions that can mislead bisect; Verify normal Visual Studio Code behavior and recurrence
Procedure overview created by FaultNote. Read the precautions and full instructions before changing settings. Read the full steps

Step-by-step instructions

  1. 01

    Fix the reproduction

    #

    Save files and reproduce with the same folder and action.

    If an empty window works, also record workspace settings.

    In Extensions > More Actions > Enabled, confirm the candidate set and distinguish extensions installed only in Remote or WSL.

    Open View > Extensions and enter @enabled. If connected remotely, record the lower-left connection indicator so local and remote extensions are not mixed.

    Record the action sequence, timing, language, and file size. Changing files between rounds changes load and language-server activation, weakening the comparison.

  2. 02

    Compare without extensions

    #

    Run Developer: Reload With Extensions Disabled from the Command Palette.

    If it still fails, investigate VS Code or configuration rather than blaming an extension.

    If the symptom remains during the initial all-disabled test, Bisect can conclude it is not an extension. This baseline prevents false blame.

    If all extensions disabled still fails, compare an empty window with the workspace and record files, configuration, remote connections, and tasks. This usefully rules against an extension-only diagnosis.

  3. 03

    Start the bisect

    #

    Run Help: Start Extension Bisect and answer Good now or This is bad after each reload.

    Use the exact same reproduction each round so the result remains valid.

    Good now means the current set works; This is bad means the symptom remains. Complete the reproduction before answering.

    Distinguish Disable from Disable (Workspace). Workspace scope limits other projects' effects but removes functions here. Identify the candidate's formatter and completion features and verify a workable alternative.

  4. 04

    Handle the identified extension

    #

    Disable the candidate and verify after a normal reload, then update it, adjust its settings, or report with logs.

    Record extension ID, version, and settings before uninstalling.

    After identification, Disable (Workspace) affects this project, while Disable applies globally. Choose the intended scope.

  5. 05

    Control conditions that can mislead bisect

    #

    For a freeze on save, repeat the same file type, save action, and workspace every round. Formatting and completion activate different extension behavior, so redefining the symptom midway makes the result unreliable.

    Wait for initialization after each reload before judging. A problem that requires a running language server cannot be marked good merely because the first few seconds are quiet. Repeat the operation when you cannot confidently assess the symptom.

    For Remote, WSL, or containers, record where extensions execute. If only a local session works, connection delays or the remote language server may contribute; the extension ID alone does not describe those environment differences.

  6. 06

    Verify normal Visual Studio Code behavior and recurrence

    #

    After bisect identifies a candidate, exit bisect and compare the normal enabled set with only that candidate disabled. Check whether enabling it reproduces the issue and disabling it improves the same action; this reduces confusion with a transient recovery.

    For interactions between extensions, treat the result as a starting point and inspect dependencies and settings. Report the extension ID, version, remote environment, and reproduction steps without sharing private source contents.

Check the result

  • recheck save, completion, and terminal behavior in a normal window with only the candidate disabled
  • Check adjacent basic functions for side effects from the change.

If the problem continues

  • use Help: Report Issue, choose Extension, and send its ID, version, and reproduction
  • When continuing with a workaround, preserve original files or account data separately.

Scope of this guide

Troubleshooting guide — Compare extension-free startup and Extension Bisect with consistent files and actions. Confirm candidates in a normal session, choose disablement scope, and prepare reproduction details.

Frequently asked questions

Does Bisect erase settings?

It temporarily toggles extensions; it is not normally a settings deletion.

What if the first all-disabled test still fails?

That is strong evidence the cause is outside extensions.

Can bisect diagnose an intermittent issue?

Unstable reproduction makes judgments unreliable. Fix the file and initialization timing, repeat the action, and confirm the candidate enabled versus disabled in a normal session.

The candidate is disabled, but freezing remains.

Compare conditions with bisect. Record all-disabled, candidate-only, and normal-set-with-candidate-disabled results separately. Interactions or remote issues may contribute; report versions and reproduction steps.

Official sources and dates

Source publication or resolution date: Not specified. Sources checked: 2026-10-13. The check date is not the date the problem first occurred. Interface labels can vary between versions and display languages.

Related troubleshooting guides

Visual Studio Code errors and troubleshooting →

Apps will not start, crash or freeze →

Related how-to guides and comparisons

← Search English guides