Qoder Cloud Agents API のエラー形式、エラータイプ一覧、トラブルシューティングのベストプラクティス。
概要
Qoder Cloud Agents API は、すべてのエラーを統一されたエラーエンベロープ形式で返します。各エラーレスポンスには構造化された情報が含まれ、プログラム的な処理と問題のトラブルシューティングを容易にします。
エラーエンベロープ形式
すべてのエラーレスポンスは以下の JSON 構造に従います。
フィールド説明
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
type | string | はい | 固定値 "error" |
request_id | string | はい | x-request-id から取得したリクエスト相関 ID、または生成された UUID |
error.type | string | はい | エラータイプ識別子 |
error.message | string | はい | 人間が読めるエラー説明 |
error.param | string | いいえ | エラーをトリガーしたリクエストパラメータ名 |
エラータイプ一覧
| HTTP ステータスコード | error.type | 説明 |
|---|---|---|
| 400 | invalid_request_error | リクエストパラメータが無効または欠落 |
| 401 | authentication_error | 認証失敗、トークンが無効または欠落 |
| 403 | permission_error | 認証は成功したが、対象リソースを操作する権限がない |
| 404 | not_found_error | 対象リソースが存在しない |
| 409 | conflict_error | リソース状態の競合(重複作成など) |
| 500 | api_error | サーバー内部エラー |
各エラータイプの詳細
400 — invalid_request_error
リクエスト形式またはパラメータが不正です。
よくあるトリガーシナリオ:
- 必須フィールドの欠落(
nameなど) - フィールド値の型が誤っている(string に number を渡したなど)
- リクエストボディが 4MB のサイズ制限を超過
- JSON 形式エラー
401 — authentication_error
認証に失敗しました。
よくあるトリガーシナリオ:
Authorizationヘッダーが提供されていない- PAT または SAT の形式エラー
- PAT の期限切れまたは取り消し、あるいは SAT の期限切れ
- Bearer Token の代わりに
x-api-keyを使用
403 — permission_error
認証は通過したが、権限が不足しています。
よくあるトリガーシナリオ:
- PAT または SAT に対象 Agent へのアクセス権限がない(他のユーザー/組織所属)
- PAT または SAT の権限範囲が現在の操作をカバーしていない
- アーカイブ済みかつロックされたリソースの操作試行
404 — not_found_error
対象リソースが存在しません。
よくあるトリガーシナリオ:
- Agent / Session / Environment ID が存在しない
- リソースが利用不可になった
- URL パスのスペルミス
409 — conflict_error
リソース状態の競合により、操作を実行できません。
よくあるトリガーシナリオ:
- 同じ冪等キーで異なるリクエストボディの重複リクエスト
- 終了済み Session への操作継続
- 名前が一意のリソースの重複作成
500 — api_error
サーバー内部エラーです。
よくあるトリガーシナリオ:
- サービスの一時的な利用不可
- 内部コンポーネントの異常
- データベース接続のタイムアウト
500 エラーが発生した場合は、指数バックオフ戦略でリトライすることを推奨します(待機 1s → 2s → 4s)。
エラー処理のベストプラクティス
error.typeを解析 してプログラム的に判断する(HTTP ステータスコードではなく)。request_idとerror.messageをログに記録 してトラブルシューティングに使用する。error.paramが存在する場合は確認 して問題のあるフィールドを特定する。- 4xx エラーはリトライしない(リクエストパラメータを修正した場合を除く)。
- 5xx エラーはバックオフでリトライ(最大 3 回)。