[BUG] Claude Code on Web: git push fails — local git proxy missing credential bridge
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Summary
In a Claude Code on Web workspace, git push consistently fails because the local git proxy at 127.0.0.1:<port> requires Basic auth but no credential helper is wired up to supply the password.
Repro
git push -u origin <branch>
Result:
fatal: could not read Password for 'http://local_proxy@127.0.0.1:<port>': No such device or address
Diagnostics
Probing the proxy directly:
$ curl -sv http://127.0.0.1:<port>/git/<owner>/<repo>/info/refs?service=git-upload-pack
< HTTP/1.1 401 Unauthorized
< Www-Authenticate: Basic realm="Git Proxy"
So the proxy is up and demanding Basic auth, but the workspace has no way to provide it:
~/.gitconfig sets http.proxyAuthMethod=basic
No credential.helper configured (git config --get-all credential.helper returns nothing)
No credentials file at ~/.git-credentials or ~/.config/git/credentials
CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR=4 is set in the env, but nothing bridges that token to git as the proxy password
What I tried
Reopened the workspace — no change
Fully killed the browser and re-logged into Claude — no change
Retried push with exponential backoff — same error every time
Environment
Platform: Claude Code on Web
Repo host: GitHub (private repo accessed via the Claude GitHub integration)
Impact
The stop hook flags the unpushed commit every turn, and there is no way to push from inside the workspace. Workaround is to extract the work as a bundle/patch and push from a local machine.
What Should Happen?
git push from inside a Claude Code on Web workspace should succeed against the local git proxy without any manual credential setup. Specifically:
The workspace should ship with a credential.helper (or equivalent bridge) that supplies the OAuth token referenced by CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR to the local proxy as the Basic-auth password for the local_proxy user.
git push -u origin <branch> should complete normally, with the proxy forwarding the request to GitHub on the user's behalf.
The stop hook that checks for unpushed commits should be satisfied after a successful push, without requiring the user to extract work as a bundle/patch and push from a separate machine.
Error Messages/Logs
Steps to Reproduce
Steps to Reproduce
- Open a Claude Code on Web workspace on any GitHub repo you have access to via the Claude GitHub integration.
- In the session, ask Claude to make a small change on a new branch — e.g. "create a branch
test/proxy-repro, add a one-line filerepro.txt, commit it." - Wait for Claude to commit. Verify the commit exists locally:
``bash``
git log --oneline -1
git status
- Attempt to push the branch from the workspace shell:
``bash``
git push -u origin test/proxy-repro
- Observe the failure:
````
fatal: could not read Password for 'http://local_proxy@127.0.0.1:<port>': No such device or address
- Confirm the proxy itself is up and requesting Basic auth:
``bash``
curl -sv "http://127.0.0.1:<port>/git/<owner>/<repo>/info/refs?service=git-upload-pack"
# → HTTP/1.1 401 Unauthorized
# → Www-Authenticate: Basic realm="Git Proxy"
- Inspect the workspace's git credential setup and confirm nothing is supplying the password:
``bash``
git config --get-all credential.helper # → (empty)
git config --get http.proxyAuthMethod # → basic
ls ~/.git-credentials ~/.config/git/credentials # → no such file
env | grep CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR
# → CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR=4 (token referenced, but no helper bridges it to git)
- Try recovery steps and confirm they don't help:
- Close and reopen the workspace tab.
- Fully quit the browser and re-log into Claude.
- Retry the push.
Every push attempt fails with the same could not read Password error.
Minimal repro file (repro.txt):
proxy push repro
The exact file content is irrelevant — any commit on any branch reproduces this; the failure is in the push transport, not in the change itself.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.138 (Claude Code)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Other
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗