[BUG] Github action with Claude fails on SDK error code 14 since Feb 6

Resolved 💬 3 comments Opened Feb 11, 2026 by haiko-ritense Closed Feb 11, 2026

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?

A Claude workflow with Claude Github agent fails with SDK execution error: 14. since Feb 6.
Before that is ran successfully

This is an exceprt from the error log:
error: Claude Code process exited with code 1
at $ (/home/runner/work/_actions/anthropics/claude-code-action/v1/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs:19:7919)
at emit (node:events:98:22)
at #handleOnExit (node:child_process:520:14)

Error: Action failed with error: SDK execution error: Error: Claude Code process exited with code 1

claude.yml

What Should Happen?

PR should be reviewed by Claude succesfully. It did so a couple of times, but since no changes from my side it started to fail from Feb 6 and on.

Error Messages/Logs

Cache hit for: swrvKXH4hkDYFKcrNV+Kct676IY=
Received 35242125 of 35242125 (100.0%), 43.5 MBs/sec
Cache Size: ~34 MB (35242125 B)
/usr/bin/tar -xf /home/runner/work/_temp/5a0c4dfd-dfc6-4c20-a78b-48210d15b660/cache.tzst -P -C /home/runner/work/Plugins/Plugins --use-compress-program unzstd
Cache restored successfully
/home/runner/.bun/bin/bun --revision
1.3.6+d530ed993
Using a cached version of Bun: 1.3.6+d530ed993
Run cd ${GITHUB_ACTION_PATH}
bun install v1.3.6 (d530ed99)

+ @actions/core@1.11.1
+ @actions/github@6.0.1
+ @anthropic-ai/claude-agent-sdk@0.2.39
+ @modelcontextprotocol/sdk@1.16.0
+ @octokit/graphql@8.2.2
+ @octokit/rest@21.1.1
+ @octokit/webhooks-types@7.6.1
+ node-fetch@3.3.2
+ shell-quote@1.8.3
+ zod@3.25.76

138 packages installed [717.00ms]
Run bun run ${GITHUB_ACTION_PATH}/src/entrypoints/run.ts
Auto-detected mode: tag for event: pull_request_review
Requesting OIDC token...
Attempt 1 of 3...
OIDC token successfully obtained
Exchanging OIDC token for app token...
Attempt 1 of 3...
App token successfully obtained
Using GITHUB_TOKEN from OIDC
Checking permissions for actor: haiko-ritense
Permission level retrieved: write
Actor has write access: write
Prompt provided, triggering action
Mode: tag
Context prompt: REPO: generiekzaakafhandelcomponent/Plugins
PR NUMBER: 279

Trigger result: true
Preparing with mode: tag for event: pull_request_review
Actor type: User
Verified human actor: haiko-ritense
✅ Created initial comment with ID: 3883575210
Successfully fetched PR #279 data
This is an open PR, checking out PR branch...
PR #279: 17 commits, using fetch depth 20
From https://github.com/generiekzaakafhandelcomponent/Plugins
 * [new ref]         refs/pull/279/head -> feature/suwinet-plugin-response-velden-configureerbaar-maken
Previous HEAD position was 7004e35 Merge 7ba5a66f0e6ea6bd8770abed713ba501a63fa8a6 into cff9ab10afaffed602c22a05e4e7470a592c7b2c
Switched to branch 'feature/suwinet-plugin-response-velden-configureerbaar-maken'
Successfully checked out PR branch for PR #279
Configuring git authentication for non-signing mode
Configuring git user...
Setting git user as claude[bot]...
✓ Set git user as claude[bot]
Removing existing git authentication headers...
No existing authentication headers to remove
Updating remote URL with authentication...
✓ Updated remote URL with authentication token
Git authentication configured successfully
===== FINAL PROMPT =====
You are Claude, an AI assistant designed to help with GitHub issues and pull requests. Think carefully as you analyze the context and respond appropriately. Here's the context for your current task:

....
Version:2.1.31

Location:~/.local/bin/claude


Next:Runclaude--helptogetstarted
^[[?2026l^[[?2026h
^[[?2026l
✅ Installation complete!

Claude Code installed successfully
Setting up Claude settings at: /home/runner/.claude/settings.json
Creating .claude directory...
No existing settings file found, creating new one
Updated settings with enableAllProjectMcpServers: true
Settings saved successfully
No marketplaces specified, skipping marketplace setup
No plugins specified, skipping plugins installation
Running Claude Code via SDK (full output hidden for security)...
Rerun in debug mode or enable `show_full_output: true` in your workflow file for full output.
Running Claude with prompt from file: /home/runner/work/_temp/claude-prompts/claude-prompt.txt
SDK options: {
  "allowedTools": [
    "Edit",
    "MultiEdit",
    "Glob",
    "Grep",
    "LS",
    "Read",
    "Write",
    "mcp__github_comment__update_claude_comment",
    "mcp__github_ci__get_ci_status",
    "mcp__github_ci__get_workflow_run_details",
    "mcp__github_ci__download_job_log",
    "mcp__github_inline_comment__create_inline_comment",
    "Bash(git add:*)",
    "Bash(git commit:*)",
    "Bash(git push:*)",
    "Bash(git status:*)",
    "Bash(git diff:*)",
    "Bash(git log:*)",
    "Bash(git rm:*)",
    "Bash(gh pr comment:*)",
    "Bash(gh pr diff:*)",
    "Bash(gh pr view:*)"
  ],
  "systemPrompt": {
    "type": "preset",
    "preset": "claude_code"
  },
  "pathToClaudeCodeExecutable": "",
  "extraArgs": {
    "mcp-config": "{\n  \"mcpServers\": {\n    \"github_comment\": {\n      \"command\": \"bun\",\n      \"args\": [\n        \"run\",\n        \"/home/runner/work/_actions/anthropics/claude-code-action/v1/src/mcp/github-comment-server.ts\"\n      ],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"***\",\n        \"REPO_OWNER\": \"generiekzaakafhandelcomponent\",\n        \"REPO_NAME\": \"Plugins\",\n        \"CLAUDE_COMMENT_ID\": \"3883575210\",\n        \"GITHUB_EVENT_NAME\": \"pull_request_review\",\n        \"GITHUB_API_URL\": \"https://api.github.com\"\n      }\n    },\n    \"github_inline_comment\": {\n      \"command\": \"bun\",\n      \"args\": [\n        \"run\",\n        \"/home/runner/work/_actions/anthropics/claude-code-action/v1/src/mcp/github-inline-comment-server.ts\"\n      ],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"***\",\n        \"REPO_OWNER\": \"generiekzaakafhandelcomponent\",\n        \"REPO_NAME\": \"Plugins\",\n        \"PR_NUMBER\": \"279\",\n        \"GITHUB_API_URL\": \"https://api.github.com\"\n      }\n    },\n    \"github_ci\": {\n      \"command\": \"bun\",\n      \"args\": [\n        \"run\",\n        \"/home/runner/work/_actions/anthropics/claude-code-action/v1/src/mcp/github-actions-server.ts\"\n      ],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"***\",\n        \"REPO_OWNER\": \"generiekzaakafhandelcomponent\",\n        \"REPO_NAME\": \"Plugins\",\n        \"PR_NUMBER\": \"279\",\n        \"RUNNER_TEMP\": \"/home/runner/work/_temp\"\n      }\n    }\n  }\n}",
    "max-turns": "10",
    "system-prompt": "Please review this pull request with plugin-pr-reviewer agent."
  },
  "settingSources": [
    "user",
    "project",
    "local"
  ]
}
{
  "type": "system",
  "subtype": "init",
  "message": "Claude Code initialized",
  "model": "claude-sonnet-4-5-20250929"
}
{
  "type": "result",
  "subtype": "success",
  "is_error": true,
  "duration_ms": 261,
  "num_turns": 1,
  "total_cost_usd": 0,
  "permission_denials": []
}
SDK execution error: 14 |     depsCount: ${Q},
15 |     deps: ${$}}`};var Tj={keyword:"dependencies",type:"object",schemaType:"object",error:bB.error,code(X){let[Q,$]=_j(X);IB(X,Q),EB(X,$)}};function _j({schema:X}){let Q={},$={};for(let Y in X){if(Y==="__proto__")continue;let W=Array.isArray(X[Y])?Q:$;W[Y]=X[Y]}return[Q,$]}function IB(X,Q=X.schema){let{gen:$,data:Y,it:W}=X;if(Object.keys(Q).length===0)return;let J=$.let("missing");for(let G in Q){let H=Q[G];if(H.length===0)continue;let B=(0,Y4.propertyInData)($,Y,G,W.opts.ownProperties);if(X.setParams({property:G,depsCount:H.length,deps:H.join(", ")}),W.allErrors)$.if(B,()=>{for(let z of H)(0,Y4.checkReportMissingProp)(X,z)});else $.if(hY._`${B} && (${(0,Y4.checkMissingProp)(X,H,J)})`),(0,Y4.reportMissingProp)(X,J),$.else()}}bB.validatePropertyDeps=IB;function EB(X,Q=X.schema){let{gen:$,data:Y,keyword:W,it:J}=X,G=$.name("valid");for(let H in Q){if((0,vj.alwaysValidSchema)(J,Q[H]))continue;$.if((0,Y4.propertyInData)($,Y,H,J.opts.ownProperties),()=>{let B=X.subschema({keyword:W,schemaProp:H},G);X.mergeValidEvalu
16 | `))X=Z0(X);let Y=`${new Date().toISOString()} [${Q.toUpperCase()}] ${X.trim()}
17 | `;if(JW()){i7(Y);return}uU().write(Y)}function HW(){return GW()??process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??WW(L4(),"debug",`${e7()}.txt`)}var lU=k1(()=>{if(process.argv[2]==="--ripgrep")return;try{let X=HW(),Q=K9(X),$=WW(Q,"latest");if(!n0().existsSync(Q))n0().mkdirSync(Q);if(n0().existsSync($))try{n0().unlinkSync($)}catch{}n0().symlinkSync(X,$)}catch{}});var nU=!1;function F0(X,Q){let $=performance.now();try{return Q()}finally{performance.now()-$>z9}}var rU={cwd(){return process.cwd()},existsSync(X){return F0(`existsSync(${X})`,()=>h.existsSync(X))},async stat(X){return mU(X)},async readdir(X){return cU(X,{withFileTypes:!0})},async unlink(X){return pU(X)},async rmdir(X){return dU(X)},async rm(X,Q){return iU(X,Q)},statSync(X){return F0(`statSync(${X})`,()=>h.statSync(X))},lstatSync(X){return F0(`lstatSync(${X})`,()=>h.lstatSync(X))},readFileSync(X,Q){return F0(`readFileSync(${X})`,()=>h.readFileSync(X,{encoding:Q.encoding}))},readFileBytesSync(X){return F0(`readFileBytesSync(${X})`,()=>h.readFileSync(X))},readS
18 | `),N4}function N1(X){let Q=$V();if(!Q)return;let Y=`${new Date().toISOString()} ${X}
19 | `;eU(Q,Y)}function KW(X,Q){let $={...X};if(Q){let Y={sandbox:Q};if($.settings)try{Y={...q4($.settings),sandbox:Q}}catch{}$.settings=Z0(Y)}return $}class e6{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(X){this.options=X;this.abortController=X.abortController||O6(),this.initialize()}getDefaultExecutable(){return R6()?"bun":"node"}spawnLocalProcess(X){let{command:Q,args:$,cwd:Y,env:W,signal:J}=X,G=W.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",H=YV(Q,$,{cwd:Y,stdio:["pipe","pipe",G],signal:J,env:W,windowsHide:!0});if(W.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)H.stderr.on("data",(z)=>{let K=z.toString();if(N1(K),this.options.stderr)this.options.stderr(K)});return{stdin:H.stdin,stdout:H.stdout,get killed(){return H.killed},get exitCode(){return H.exitCode},kill:H.kill.bind(H),on:H.on.bind(H),once:H.once.bind(H),off:H.off.bind(H)}}initialize(){try{let{additionalDirectories:X=[],agent:Q,betas:$,cwd:Y,execu

error: Claude Code process exited with code 1
      at $ (/home/runner/work/_actions/anthropics/claude-code-action/v1/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs:19:7919)
      at emit (node:events:98:22)
      at #handleOnExit (node:child_process:520:14)

Error: Action failed with error: SDK execution error: Error: Claude Code process exited with code 1
Fetching issue comment 3883575210
Successfully fetched as issue comment
✅ Updated issue comment 3883575210 with job link
Error: Process completed with exit code 1.

Steps to Reproduce

run github workflow on my private repo

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

claude-sonnet-4-5-20250929

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

_No response_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗