Skip to content

Bug: Extension creates a literal 'NUL' file in Windows VS Code directory, permanently breaking VS Code updates #5113

@Satbir-Singh-42

Description

@Satbir-Singh-42

Description

On Windows, the extension appears to be accidentally creating a physical file literally named NUL (with no file extension) inside the main VS Code installation directory (C:\Users\<User>\AppData\Local\Programs\Microsoft VS Code\).

Because NUL is a reserved MS-DOS device name in Windows, the OS permanently locks the file. This completely breaks the VS Code background auto-updater, throwing an Access is denied error because the updater cannot overwrite or delete the NUL file. Furthermore, the parent directory throws an Invalid MS-DOS function error if the user attempts to delete it manually in File Explorer.

To resolve this locally and restore VS Code functionality, I had to use an elevated command prompt with the \\.\ bypass just to forcefully delete the corrupted file and reinstall VS Code.

Steps to Reproduce

  1. Run VS Code on Windows with the extension installed.
  2. Perform standard background Git operations triggered by the extension.
  3. Observe the creation of a physical file named NUL in the VS Code installation directory.
  4. Attempt to run a VS Code update (fails with Access Denied).
  5. Attempt to manually delete the VS Code installation folder via File Explorer (fails with Invalid MS-DOS function).

Expected Behavior

Background commands that intend to discard output should correctly pipe to the Windows null device without generating a physical file on the disk.

Suspected Root Cause

There is likely a background command or script trying to discard output by piping it to /dev/null. On Windows, this is accidentally creating a literal file named NUL in the active working directory rather than safely piping to the system's void.

GitLens Version

17.11.1

VS Code Version

Version: 1.114.0 (user setup)
Commit: e7fb5e96c0730b9deb70b33781f98e2f35975036
Date: 2026-04-01T09:27:11Z
Electron: 39.8.3
ElectronBuildId: 13658728
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Windows_NT x64 10.0.26200

Git Version

git version 2.52.0.windows.1

Logs, Screenshots, Screen Captures, etc

Process ID (PID): 16016
Command line: C:\Users\XXXX\AppData\Local\Microsoft\WindowsApps\Microsoft.PowerShell_8wekyb3d8bbwe\pwsh.exe -noexit -command 'try { . "c:\Users\gurba\AppData\Local\Programs\Microsoft VS Code\e7fb5e96c0\resources\app\out\vs\workbench\contrib\terminal\common\scripts\shellIntegration.ps1" } catch {}'
Shell integration: Rich
Shell type: pwsh
Current working directory: C:\Users\XXXX\Downloads\CODING
Seen sequences: P, A, B
Prompt input: |
The following extensions have contributed to this terminal's environment:
Python Debugger: Enables use of no-config debugging, debugpy <script.py>, in the terminal.
GitHub Copilot Chat: Enables use of copilot-debug and copilot commands in the terminal
Git: Enables the following features: git auth provider
Python: Enables python.terminal.shellIntegration.enabled by modifying PYTHONSTARTUP and PYTHON_BASIC_REPL
 The following extensions want to relaunch the terminal to contribute to its environment:
GitLens — Git supercharged: Enables GK CLI integration

Image

Metadata

Metadata

Assignees

Labels

Type

No fields configured for Bug.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions