CC逆引きリファレンス

API エラーで中断した時にフックを実行したい

11. フック

コマンド / 機能

StopFailure

エラー終了時フック

概要

StopFailure フックは Claude のターンが API エラー(レート制限・タイムアウトなど)で終了した時に発火します。エラー通知やリトライ処理の実装に使います。

設定例

// .claude/settings.json
{
  "hooks": {
    "StopFailure": [
      {
        "type": "command",
        "command": "notify-send 'Claude Code' 'APIエラーが発生しました'"
      }
    ]
  }
}

// エラー内容を含む通知の例
#!/bin/bash
# $CLAUDE_HOOK_DATA に JSON で情報が入る
error_msg=$(echo "$CLAUDE_HOOK_DATA" | jq -r '.error // "不明なエラー"')
notify-send "Claude Code エラー" "$error_msg"
公式ドキュメントを見る

こんな時に使う

  • API エラー発生時にデスクトップ通知したい時
  • エラーをログに記録したい時
  • 障害検知・アラートを実装したい時

使い方

  1. 1hooks.StopFailure にフックを定義
  2. 2通常の Stop フックと同様に command/http/prompt/agent が使える
  3. 3CLAUDE_HOOK_DATA 環境変数でエラー情報を取得

Tips

  • Stop(正常終了)と StopFailure(エラー終了)は別イベント
  • レート制限・タイムアウト・ネットワークエラーで発火
  • エラー情報は JSON 形式で CLAUDE_HOOK_DATA に渡される