Skip to content

Desktop app 1.1.27+ on Windows: bundled git cannot be spawned (Access is denied, 0x80070005), breaking all project registration #5094

Description

@cdelossantos-clgx

Describe the bug

Starting with desktop app 1.1.27, the app can no longer spawn its own bundled git binary on Windows. Every startup logs:

WARN task_spawn{task="log_git_version"}: github_app_git_native::git: Failed to spawn git --version at startup
  binary=C:\Users\<user>\AppData\Local\github-copilot-git-2.53.0-4\cmd\git.exe
  embedded_git_in_use=true bundled_version="2.53.0-4"
  error=Access is denied. (0x80070005)

Because git is unusable, everything downstream breaks:

  • create_project fails with Access is denied. (0x80070005) for any repository path
  • the projects list comes back empty
  • workspace health checks fail

The app is effectively unable to register or open any project.

Separately, and possibly related: on upgrading to 1.1.28 my projects table in ~/.copilot/data.db was emptied — all 8 projects vanished. They are still present in the data.db.pre-update-backup-* files, so the data survived, but the live DB lost them.

Affected version

Desktop app 1.1.27 and 1.1.28 (1.1.26 is unaffected). Bundled CLI GitHub Copilot CLI 1.0.95-2.

Steps to reproduce the behavior

  1. Install desktop app 1.1.27 or 1.1.28 on Windows.
  2. Start the app and try to add any project (local C:\ path or a WSL UNC path — both fail identically).
  3. Registration fails with Access is denied. (0x80070005).
  4. In ~/.copilot/logs/github-app.*.log, observe Failed to spawn git --version at startup ... error=Access is denied. (0x80070005) on every run.

Expected behavior

The app spawns its bundled git successfully and project registration works, as it does on 1.1.26.

Additional context

Version correlation across 21 app runs in my logs — the split is clean:

App version Runs Runs with git spawn failure
1.1.26 10 0
1.1.27 6 6
1.1.28 5 5

The regression appears in 1.1.27. In 1.1.28 the emitting module changed from github_app::git to github_app_git_native::git, but the failure is identical.

What I ruled out:

  • Not the binary. git.exe at that exact path runs fine from a shell — git version 2.53.0.windows.4.
  • Not file permissions. ACLs on the binary are clean (SYSTEM, Administrators, and my user all FullControl).
  • Not security software. No corresponding block events in Defender, AppLocker, or CodeIntegrity logs.
  • Not WSL or path format. I first hit this on a WSL UNC path, but a plain local C:\ repo fails identically. Tried \\wsl.localhost\..., \\wsl$\..., a mapped drive letter, and the extended-length \\?\UNC\... form — all the same.
  • Not the working directory. Spawning git.exe with its working directory set to an unavailable UNC path still succeeds outside the app.
  • Not configuration drift. Comparing the resolved git env log line between a working 1.1.26 run and a failing 1.1.28 run, the two are byte-for-byte identical — same binary path, same PATH, embedded_skipped_reason=None. Only the app version differs.

Curious detail that may help narrow it down: a PowerShell session spawned by the app (github.exe → copilot.exe → powershell.exe) can execute that same git.exe without any problem. So the app's own process tree is permitted to run it; only the spawn from github.exe itself is denied. That points at how the spawn is performed in 1.1.27+ rather than at any OS-level permission on the file.

Environment

  • Windows 11, 10.0.26200.0, AMD64
  • Bundled git 2.53.0-4 at %LOCALAPPDATA%\github-copilot-git-2.53.0-4\cmd\git.exe
  • Shell: PowerShell 5.1

Workaround: downgrading to 1.1.26 restores normal behavior.

Activity

  1. cdelossantos-clgx commented on Oct 9, 2026

    @cdelossantos-clgx
    Author

    Additional finding while working around this: the 156 → 174 database migration is destructive.

    Comparing the live data.db against the pre-update-backup taken moments before the 1.1.28 upgrade:

    Backup (schema 156) Live after upgrade (schema 174)
    projects 8 0
    sessions 61 59

    Comparing session IDs between the two, 3 sessions present before the upgrade are absent afterwards, and only 1 session has been created since. So the migration silently dropped all 8 projects and 3 sessions. Nothing in the logs reports any of this as an error.

    This also makes the workaround painful: 1.1.26 refuses to start against the migrated database —

    ERROR github_app::startup_error: Database startup failed; showing error dialog
      event="database.startup_failed.newer_version"
      error=database schema version 174 is newer than this app supports (max 156);
            please update to a newer version of the app
      app_version=1.1.26
    

    The resulting dialog prompts for an update, which reinstalls the broken 1.1.28. So downgrading to the last working version requires manually restoring a schema-156 data.db backup first — otherwise you are looped straight back onto the version that cannot spawn git.

    Two suggestions:

    1. The 156 → 174 migration should not drop projects and sessions rows, or should at minimum log what it removes.
    2. The schema-too-new dialog offering only "update" is a trap when the newer version is the broken one. An option to open a read-only or recovery mode, or clearer guidance that a backup exists at data.db.pre-update-backup-*, would help.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions