You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v1.0.100 breaks the action on self-hosted runners where claude.ai is unreachable (corporate firewall) but npm packages are available via a registry mirror (e.g. AWS CodeArtifact).
The install.sh download silently fails (curl SSL error, but bash in the pipe exits 0), so the action reports "Claude Code installed successfully". Then v1.0.100's new logic passes the non-existent $HOME/.local/bin/claude path to the SDK, which throws:
ReferenceError: Claude Code native binary not found at /home/sh-runner/.local/bin/claude
Prior to v1.0.100, pathToClaudeCodeExecutable was undefined when not explicitly set, so the SDK fell back to its bundled platform binary (@anthropic-ai/claude-agent-sdk-linux-x64 installed via bun install --production from npm). This worked fine through corporate registry proxies.
The change in PR #1235 was intended to avoid a bun libc resolution bug, but it breaks environments where the native install is impossible and the bundled binary is the only viable path.
To Reproduce
Run the action on a self-hosted runner where claude.ai is not reachable (corporate firewall, no direct internet)
Ensure npm packages are available via a registry proxy (e.g. AWS CodeArtifact)
Use anthropics/claude-code-action@v1 (resolves to v1.0.100+)
Observe: install.sh curl fails, action reports success, then SDK throws "native binary not found"
CI log from a broken run:
Installing Claude Code v2.1.114...
Installation attempt 1...
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to claude.ai:443
Claude Code installed successfully
...
SDK execution error: ReferenceError: Claude Code native binary not found at /home/sh-runner/.local/bin/claude
CI log from a working run on v1.0.99 (same environment, same SSL error, but SDK falls back to bundled binary):
Installing Claude Code v2.1.111...
Installation attempt 1...
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to claude.ai:443
Claude Code installed successfully
[review completes successfully in 2m59s]
Expected behavior
When install.sh fails to download or install the native binary, the action should detect this and allow the SDK to fall back to its bundled platform binary (from the npm optional dependency). Two sub-issues:
The pipe curl ... | bash masks curl failures — bash receives no input, exits 0, and the action treats it as a successful install. Consider set -o pipefail or verifying the binary exists after install.
When the native binary is not available, pathToClaudeCodeExecutable should be left as undefined rather than pointing to a non-existent file, so the SDK can use its bundled binary.
The v1.0.100 comment says: "bun may resolve to the wrong libc variant on Linux" — but in our environment the bundled binary works correctly, and a working bundled binary is better than a non-existent native one
Describe the bug
v1.0.100 breaks the action on self-hosted runners where
claude.aiis unreachable (corporate firewall) but npm packages are available via a registry mirror (e.g. AWS CodeArtifact).The
install.shdownload silently fails (curl SSL error, butbashin the pipe exits 0), so the action reports "Claude Code installed successfully". Then v1.0.100's new logic passes the non-existent$HOME/.local/bin/claudepath to the SDK, which throws:Prior to v1.0.100,
pathToClaudeCodeExecutablewasundefinedwhen not explicitly set, so the SDK fell back to its bundled platform binary (@anthropic-ai/claude-agent-sdk-linux-x64installed viabun install --productionfrom npm). This worked fine through corporate registry proxies.The change in PR #1235 was intended to avoid a bun libc resolution bug, but it breaks environments where the native install is impossible and the bundled binary is the only viable path.
To Reproduce
claude.aiis not reachable (corporate firewall, no direct internet)anthropics/claude-code-action@v1(resolves to v1.0.100+)CI log from a broken run:
CI log from a working run on v1.0.99 (same environment, same SSL error, but SDK falls back to bundled binary):
Expected behavior
When
install.shfails to download or install the native binary, the action should detect this and allow the SDK to fall back to its bundled platform binary (from the npm optional dependency). Two sub-issues:curl ... | bashmasks curl failures — bash receives no input, exits 0, and the action treats it as a successful install. Considerset -o pipefailor verifying the binary exists after install.pathToClaudeCodeExecutableshould be left asundefinedrather than pointing to a non-existent file, so the SDK can use its bundled binary.Workflow yml file
The shared workflow uses
anthropics/claude-code-action@v1withuse_bedrock: "true".API Provider
[x] AWS Bedrock
Additional context
claude.aihas never been reachable@anthropic-ai/claude-agent-sdk-linux-x64installs successfully@v1.0.99which restorespathToClaudeCodeExecutable: undefined