エラーコード一覧
通話の処理中にエラーが発生すると、payload の body.errors[] に 1 件以上のエラーオブジェクトが入って配信されます。本ページはエラーオブジェクトの構造と、code に入り得る値をまとめたリファレンスです。
変更予定
エラーオブジェクトの構造とエラーコードの体系は、今後より取り扱いやすい形式への変更を予定しています。変更内容・時期は確定次第、本ページで告知します。
エラーオブジェクトの構造
| フィールド | 型 | 必須 | 例 | 用途 |
|---|---|---|---|---|
code | string | 必須 | "NETWORK_ERROR" | 機械可読のエラーコード。後述の一覧のいずれかの値。受信側 switch のキーとして使う |
message | string | 必須 | "Connection timed out" | 人間可読のエラーメッセージ(日本語または英語)。表示・ログ用 |
timestamp | string (ISO8601) | 必須 | "2026-05-12T10:23:45.000Z" | エラー発生時刻(UTC・ミリ秒精度)。時系列ソートに使う |
where | string | 必須 | "OutboundCallAdapter.connect" | 発生箇所(クラス名 / 関数名 / モジュール名)。Recho 側調査時の参照情報 |
phase | string | 必須 | "CONNECTING" | 通話のどのフェーズで発生したか。原因切り分けや集計に使う |
stacktrace | string | 必須 | "Error: Connection timed out\n at ..." | スタックトレース。空文字列の場合あり(外部由来エラーなど)。一次調査用 |
重要
エラー判定は body.errors 配列が空でないかで行ってください。body.data.callStatus にはエラー発生時点の遷移中ステータス(CALLING など)が入る場合があり、ERROR 固定ではありません。
code に入り得る値
code は下表のいずれかの値です。一覧にない予期しない内部エラーが発生した場合は UNKNOWN_ERROR として配信されます。コードは今後のリリースで追加されることがあるため、受信側は未知の code 値が来ても落ちない実装にしてください(例: switch の default 節でログのみ出力)。
カテゴリは大まかな発生段階を表します:
- 発信失敗 … 通話そのものを発信できなかった
- 通話処理 … 通話中の接続・AI 処理・状態更新で失敗した
- 後処理・分析 … 通話終了後の分析・ログ保存・後処理で失敗した
- 内部監視 … 通話状態が長時間更新されない異常を検知した
- その他 … 上記に分類されない予期しないエラー
| code | カテゴリ | 説明 |
|---|---|---|
INTERNATIONAL_PERMISSION_ERROR | 発信失敗 | 国際発信がブロックされた(詐欺電話の疑い/国際発信権限なし) |
TWILIO_API_ERROR | 発信失敗 | 通話事業者(Twilio)側の API エラー(権限エラー以外の汎用エラー) |
CALL_INITIATION_ERROR | 発信失敗 | 通話開始に失敗した(接続方式を問わない汎用コード) |
INVALID_REQUEST_ID | 発信失敗 | リクエスト ID または電話番号が無効 |
NETWORK_ERROR | 通話処理 | ネットワーク I/O 失敗の汎用コード |
TIMEOUT | 通話処理 | 外部リクエストや内部処理のタイムアウト |
WEBSOCKET_CONNECTION_FAILED | 通話処理 | 音声 AI への接続に失敗 |
VOICEAI_PROCESSING_ERROR | 通話処理 | 通話中の音声 AI の処理エラー |
PRE_VOICEAI_RUNNING_FAILED | 通話処理 | 通話開始前の準備処理に失敗(設定取得など) |
STATUS_UPDATE_TO_CALLING_FAILED | 通話処理 | CALLING への遷移に失敗 |
STATUS_UPDATE_TO_CLOSING_FAILED | 通話処理 | CLOSING への遷移に失敗 |
STATUS_UPDATE_TO_CONCURRENCY_LIMIT_EXCEEDED_FAILED | 通話処理 | CONCURRENCY_LIMIT_EXCEEDED への遷移に失敗 |
POST_VOICEAI_RUNNING_FAILED | 後処理・分析 | 通話終了後の後処理に失敗 |
ANALYZER_FAILED | 後処理・分析 | 通話結果の分析処理に失敗 |
GEMINI_ANALYZER_FAILED | 後処理・分析 | AI モデル(Gemini)による分析処理に失敗 |
HISTORY_FORMAT_FAILED | 後処理・分析 | 会話履歴のフォーマット処理に失敗 |
CALL_LOG_SAVE_FAILED | 後処理・分析 | 通話ログの保存に失敗 |
GEMINI_API_UNAVAILABLE | 後処理・分析 | AI モデル(Gemini)の API が利用不可 |
STATUS_UPDATE_TO_FINAL_STATUS_FAILED | 後処理・分析 | 最終ステータス(COMPLETED 等)への遷移に失敗 |
STATUS_UPDATE_IN_CALLBACK_FAILED | 後処理・分析 | 通話切断後の後処理内でのステータス更新に失敗 |
CALLBACK_PROCESSING_FAILED | 後処理・分析 | 通話切断後の後処理全般での失敗 |
STALE_CALLING_DETECTED | 内部監視 | CALLING 状態のまま規定時間を超過(発信・着信両方) |
STALE_CLOSING_DETECTED | 内部監視 | CLOSING 状態のまま規定時間を超過(発信・着信両方) |
STALE_REQUESTED_DETECTED | 内部監視 | REQUESTED 状態のまま規定時間を超過(発信のみ) |
STALE_CONNECTING_DETECTED | 内部監視 | CONNECTING 状態のまま規定時間を超過(着信のみ) |
UNKNOWN_ERROR | その他 | 上記一覧に分類されない予期しないエラー |
備考
コードは今後のリリースで追加されることがあります。追加時は本ページの一覧を更新して告知します。