Logo

包括的な開発者ガイドとベストプラクティスで、すばやく開発を始められます。

エラーコードと報告

エラーハンドリング

失敗時は共通の error オブジェクトを返します。本章では HTTP ステータスコード、モジュール別エラーコード、request_id を用いた問題報告手順を整理します。

共通エラー構造

すべてのエラーは error オブジェクトに包まれ、固定 4 フィールド(code / message / details / request_id)を持ちます。

エラー応答例

json
{
  "error": {
    "code": "validation_error",
    "message": "Request validation failed",
    "details": {
      "issues": [
        { "field": "text", "message": "String must contain at most 5000 character(s)" }
      ]
    },
    "request_id": "0af7651916cd43dd8448eb211c80319c"
  }
}

汎用エラーメッセージ

一部のエラー(internal_server_error / service_unavailable / translation_failed / asr_failed など)の message は汎用文で、デバッグ可能な詳細は含みません。サポートへの問い合わせ時は request_id を添えてください。

HTTP ステータスコード

  • 200 OK — リクエスト成功。
  • 400 Bad Request — パラメータが仕様に反しています。
  • 401 Unauthorized — キーの欠落・無効・失効。
  • 404 Not Found — パスまたはリソースが存在しません。
  • 409 Conflict — 名前または用語の重複。
  • 413 Payload Too Large — 音声が上限超過(JSON/Base64 経路は raw 1 MB で audio_too_long、multipart は 15 MB で file_too_large)。
  • 429 Too Many Requests — RPM または当期クォータ超過(rate_limited_* / quota_exceeded_*)。
  • 500 Internal Server Error — サーバー内部エラー。
  • 502 Bad Gateway — 処理失敗(translation_failed / asr_failed)。
  • 503 Service Unavailable — 一時的に利用不可。
  • 504 Gateway Timeout — 処理タイムアウト。

共通エラーコード

どのエンドポイントでも発生し得ます:

  • validation_error(400)— リクエストボディのバリデーション失敗。details.issues にフィールド単位のエラーを列挙。
  • unauthorized(401)— キーの欠落・無効・失効。
  • not_found(404)— パスが存在しません。
  • internal_server_error(500)— サーバー内部エラー。
  • service_unavailable(503)— サービスが一時的に利用不可。しばらくして再試行を。

翻訳モジュールのエラーコード

  • model_not_found(400)— 指定のモデルコードが存在しません。
  • content_policy_violation(400)— 安全ポリシー違反のコンテンツ。
  • dictionary_type_mismatch(400)— 辞書 ID の type がパラメータと不一致(例:forced_replacement 辞書を vocabulary に指定)。
  • dictionary_not_found(404)— 指定の辞書が存在しません。
  • translation_failed(502)— 翻訳サービスが一時的に利用できません。
  • translation_timeout(504)— 翻訳処理がタイムアウトしました。

音声認識モジュールのエラーコード

  • unsupported_audio_format(422)— 音声フォーマットを判別できません。
  • asr_audio_decode_error(422)— Base64 が破損、または内容と宣言フォーマットが不一致。
  • asr_content_policy_violation(400)— 安全ポリシー違反のコンテンツ。
  • audio_too_long(413)— JSON(Base64)経路の音声が raw 1 MB 上限を超過。大きいファイルは multipart で。
  • file_too_large(413)— multipart アップロードが 15 MB 上限を超過。
  • asr_service_busy(503)— 音声認識サービスがビジー状態。バックオフ後に再試行を。
  • asr_failed(502)— 音声認識サービスが一時的に利用できません。
  • asr_timeout(504)— 音声認識処理がタイムアウトしました。

辞書モジュールのエラーコード

  • dictionary_not_found(404)— 指定の辞書が存在しません。
  • term_not_found(404)— 指定の用語が存在しません。
  • duplicate_name(409)— 辞書名が重複。
  • duplicate_term(409)— 同一辞書内で用語が重複。

日付フィールドの形式

応答内の `created_at` / `updated_at` はすべて ISO 8601 UTC、`YYYY-MM-DDTHH:mm:ss.sssZ` 形式です。クライアント側で `new Date(...)` を呼んでローカルタイムゾーンに変換してください。

問題を報告する

問題報告時は request_id を必ず添えてください。サーバー側ログから該当リクエストの全コンテキストを特定できます。すべてのエラー応答に request_id が含まれ、SSE の error イベントも同様です。

報告テンプレート

次の情報をご提供ください:(1) エンドポイントパスと HTTP メソッド、(2) リクエスト発生時刻(タイムゾーン付き)、(3) error.code、(4) request_id、(5) 再現手順または最小再現例。報告に API キーの生値は含めないでください。