Claude Media
「SDK execution error」でclaude-code-actionが落ちる原因と対処法

「SDK execution error」でclaude-code-actionが落ちる原因と対処法

claude-code-actionがAPI呼び出し前に「SDK execution error」でexit code 1停止する原因と、確認された対処法をまとめます。

GitHub Actions上でanthropics/claude-code-actionを実行すると、API呼び出しが一度も走らないまま「SDK execution error」というログとともにexit code 1でプロセスが終了することがあります。GitHubのissueには関連する2件で合わせて30件超のコメントが集まり、Agent SDKのバージョンを変えてもclaude_argsを外しても再現するケースが多数報告されました。複数の報告者が効果を確認できたのは、Claude Code本体を動作実績のあるバージョンに固定しpath_to_claude_code_executableで読み込ませる方法です。

SDK execution errorのログの特徴

失敗したRunのログは、total_cost_usd: 0かつis_error: trueという組み合わせで終わります。subtypesuccessのままなのにis_errortrueという食い違った出力になり、その直後にJavaScriptの圧縮済みコードの断片がそのままエラーメッセージとして出力されます。

実際のエラーログ例(issue #892より抜粋)
{
  "type": "result",
  "subtype": "success",
  "is_error": true,
  "duration_ms": 372,
  "num_turns": 1,
  "total_cost_usd": 0,
  "permission_denials": []
}
SDK execution error: 14 |     depsCount: ${Q},
15 |     deps: ${$}}`};var Pj={keyword:"dependencies",type:"object",schemaType:"object",error:EB.error,code(X){...
error: Claude Code process exited with code 1
      at $ (/home/runner/work/_actions/anthropics/claude-code-action/v1/base-action/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs:19:7668)

num_turns: 1が記録されるものの、実際にはClaude本体が応答を返す前の初期化段階で止まっています。ワークフロー自体はチェックアウトや権限設定まで正常に完了し、Claude Codeの起動処理に入った直後だけが失敗するのが共通点です。

原因はAgent SDKに同梱されたAJVのスキーマ検証

エラーメッセージの中身は、JSON Schemaバリデーターのajvが持つdependenciesキーワードの検証コードです。@anthropic-ai/claude-agent-sdkパッケージのsdk.mjsにバンドルされたajvが、内部設定オブジェクトを検証する処理でエラーを投げ、その例外がキャッチされずにプロセスごと終了しています。

issue #892では、Agent SDKが0.2.25から0.2.27に上がった2026年1月30日のコミット以降で再現すると報告されました。ただし報告者のwesleysmyth氏は、0.2.22・0.2.25・0.2.29のいずれでも同じクラッシュが起きることを追加で確認しており、特定バージョンだけの問題ではないことがうかがえます。同氏は、対象リポジトリの.mcp.jsonにMongoDBやSalesforceなど複数のMCPサーバー定義があり、enableAllProjectMcpServers: trueを設定していたことが引き金になった可能性を挙げていますが、この仮説がAnthropic側で確認されたという記録はスレッド内に見当たりません。

MCPサーバー定義が増えるとツール一覧の検証コストが上がる点は、MCPのツール定義がコンテキストを圧迫する理由で扱っている構造とも重なります。

さらに遡ると、issue #852では2026年1月22日には、SDKが0.2.9から0.2.15に上がった直後に同じdepsCountのエラーが報告されています。つまりこのAJVクラッシュ自体は0.2.27より前から断続的に発生しており、複数の異なる引き金が同じログ出力に集約されている可能性があります。

コミット / バージョン日付状態
01e756b(SDK 0.2.25)日付1月29日状態動作した報告あり
0ed5eea(SDK 0.2.27)日付1月30日状態クラッシュ報告
70e16de(SDK 0.2.29)日付1月31日状態クラッシュ報告
4ce5f17(最新)日付2月1日状態クラッシュ報告
v1.0.68(SDK系は明記なし)日付3月4日状態クラッシュ再現の報告

効果が不安定な対処法 — バージョン固定や引数の削減

当初は、actionのSHAを01e756b34ef7a1447e9508f674143b07d20c2631に固定する方法が回避策として共有されました。実際に何人かの初期報告者はこれで動作したと述べています。しかし2026年2月4日にnatelegion氏、2月6日にmaxibove13氏がそれぞれ同じSHAへの固定を試し、いずれも同じAJVエラーで失敗したと報告しました。さらに2月23日には、trlxo9氏がaction@v1の更新でClaude Code本体がv2.1.49相当まで上がった後に同じクラッシュが再発し、同じSHA01e756bへの固定で再び解決したと報告しています。同じ回避策でも、いつ・どの環境で試したかによって結果が割れている状態です。

claude_argsを外して最小構成にする方法も、dreddak47氏は成功したと報告した一方、wesleysmyth氏はmodelallowed_toolsを含まない最小構成でも再現したと述べています。設定を削るアプローチも万能ではありません。この振れ幅は、「process exited with code N」の対処でも触れている「同じ終了コード・同じログでも原因が1つとは限らない」というパターンと同じ構図です。

対処法再現性の評価根拠
actionのSHAを古いバージョンに固定再現性の評価△ 時期・環境で結果が割れる根拠2月6日には無効との報告がある一方、2月23日には同じSHA固定で解決したとの報告もある
claude_argsを外し最小構成にする再現性の評価△ 個別依存根拠dreddak47氏は成功、wesleysmyth氏は失敗
Claude Code本体をpath_to_claude_code_executableで固定再現性の評価○ 複数人で確認根拠lawwu氏・ilaikim99氏が別々に確認

actionのバージョンを古く固定する場合は、パラメータの入力名自体が変わっている点にも注意が必要です。jtomasvarela氏はv1.0.51に固定した上でmodelmax_turnsallowed_toolsをネイティブパラメータとして渡したところ、そのバージョンでは無効な入力として扱われたと報告しています。SDKクラッシュを避けるつもりでactionのバージョンを下げると、今度はパラメータ名の非互換という別の問題に当たることがあります。

複数人が効果を確認した対処 — Claude Code本体のバージョン固定

複数の報告者が独立に効果を確認しているのは、claude-code-actionが内部で使うClaude Code実行ファイルそのものを、動作実績のあるバージョンにインストールし直してpath_to_claude_code_executableパラメータで渡す方法です。

- name: Install Claude Code v2.1.18
  run: |
    sudo rm -f /usr/local/bin/claude
    npm install -g @anthropic-ai/claude-code@2.1.18
    CLAUDE_BIN=$(which claude)
    echo "CLAUDE_PATH=$CLAUDE_BIN" >> $GITHUB_ENV
 
- name: Run Claude Code Action
  uses: anthropics/claude-code-action@v1
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    path_to_claude_code_executable: ${{ env.CLAUDE_PATH }}

path_to_claude_code_executableは、claude-code-actionが同梱のAgent SDK経由でClaude Codeを起動する代わりに、ワークフロー側でインストールした実行ファイルを直接使わせるパラメータです。報告者の環境では、この設定に切り替えた後にAJVクラッシュが再現しなくなったと述べられており、なぜそれで回避できるのかがAnthropic側から説明された記録はスレッド内に見当たりません。with:ブロックに渡せるパラメータの全体像はGitHub ActionsのパラメータとCLI引数をClaude Codeで渡すにまとめています。

2026年3月4日にも、jtomasvarela氏はaction SHAの固定・ネイティブパラメータ・最小claude_argsの3パターンをすべて試し、いずれも同じクラッシュを再現したと報告しています。パラメータの組み合わせを変えるより先に、Claude Code本体のバージョン固定を試す方が近道です。

なお、この回避策は、報告があった当時に動作実績があったv2.1.18へClaude Code本体を固定する一時的な措置です。固定したままにすると、それ以降にClaude Code本体へ入った修正を受け取れなくなります。まずは現在使っているaction本体とClaude Codeの組み合わせで同じエラーが再現するかどうかを確かめてから適用すると安全です。

トークン残高が原因ではないと分かっている理由

issue #892のスレッドでは、crespire氏が「トークンクレジットを追加したら直った」と報告した一方、natelegion氏は十分なクレジットを保有した状態でも同じクラッシュを確認しています。課金や利用枠を理由に説明する仮説は、この2件のやり取りだけでも成立しません。そもそもログのtotal_cost_usd: 0は、API呼び出しに到達する前に処理が止まっていることを示しているため、残高不足で説明するのは筋が通らない部分です。

見落としがちな別原因 — 認証パラメータの取り違え

issue #852では、報告者のbrynary氏がshow_full_output: trueを有効にして詳細ログを確認したところ、AJVのクラッシュより前にauthentication_failedというエラーが出ていたことに気づきました。同氏は、anthropic_api_keyを渡す想定の設定のところにclaude_code_oauth_token用の値を使っていたのが原因だったと述べています。

ただしWarcraftYax氏は、この見立てに対してclaude_code_oauth_token自体は公式ドキュメントに載っている正規の入力なので、単純な設定ミスでは片付けられずAgent SDK側のバグである可能性が残ると反論しています。つまりこの認証まわりの失敗パターンにも、設定ミス説とSDKバグ説の両方が未決着のまま残っています。

このケースが厄介なのは、認証設定に起因する失敗であってもログの見え方がAJVクラッシュとほぼ同じになる点です。claude-code-actionを初めてGitHub Actionsに組み込む場合の認証周りの選び方はClaude CodeをGitHub Actionsに組み込むで扱っているので、show_full_output: trueで詳細ログを確認してから次の対処に進むと切り分けが速くなります。

発生環境について分かっていること

初期の報告の多くはGitHub Actionsのubuntu-latestランナー上のものですが、issue #852ではgusnaughton氏・evgeniyshvab氏がlinux・macOS armの環境でも同様のクラッシュを報告しており、特定のランナーに限定された問題とは言い切れません。ローカルのターミナルでClaude Code CLIを直接使う場合の再現報告は目立って多くはありませんが、実行環境がCIかローカルかがコメントから判別できないケースもあり、環境要因を原因として確定できる情報はスレッド内に見当たりません。

発生から報告が続くまでの経緯

時期できごと
2026年1月22日できごとissue #852が最初に報告される(SDK 0.2.9→0.2.15更新後にAJVエラー)
2026年1月23日できごとbrynary氏が認証パラメータの取り違えを原因と見立てる
2026年1月30日できごとAgent SDKが0.2.27に上がったコミット(0ed5eea)の直後からissue #892が起票される
2026年2月4日〜7日できごとClaude Code本体を固定しpath_to_claude_code_executableで渡す回避策が共有される
2026年2月6日できごと複数ユーザーがactionのSHA固定では解決しないことを確認
2026年2月23日できごとtrlxo9氏がaction@v1更新後の再発をSHA固定で再び解決したと報告
2026年3月4日できごとv1.0.68でも同じクラッシュが再現したとの報告
2026年3月9日できごと別issue(#1026)へのクロスポストが行われる

両方のissueにはp1(優先度高)のラベルが付いていますが、スレッド内でAnthropic側から根本原因の確定や修正版の告知が示された形跡は見当たりません。切り分けの手がかりが増えるたびにコメント欄で共有されている段階で、報告者ごとに試した組み合わせも少しずつ異なります。

まとめ

「SDK execution error」とexit code 1でclaude-code-actionが落ちたときは、まずanthropic_api_keyclaude_code_oauth_tokenの入力が、実際に使っている認証方式と一致しているかどうかを確認します。それでも再現する場合は、actionのSHA固定やclaude_argsの削減より先に、Claude Code本体を動作実績のあるバージョンへ固定しpath_to_claude_code_executableで渡す方法を試すと、複数の独立した報告と同じ結果を得やすくなります。Agent SDK全般のエラーパターンはAgent SDKのエラー集にもまとめているので、切り分けの際にあわせて確認してください。

この記事を共有:XはてブLinkedIn