エラーコード
Lazu が返すすべてのエラーには、3 つの安定した識別子があります。Lazu エラー番号(LZ-3101)、code(insufficient_quota)、type(insufficient_quota)です。HTTP ステータスは常に実際の値で、エラーが 200 で返ることはありません。
レスポンスの形式
OpenAI 互換のルートは OpenAI のエラーオブジェクトをそのまま使い、その横に Lazu のフィールドを追加します。OpenAI のフィールドしか知らない SDK もそのまま動作します。
{
"error": {
"message": "Wallet balance is too low for this request. Top up to continue.",
"type": "insufficient_quota",
"param": null,
"code": "insufficient_quota",
"lazu": "LZ-3101",
"docs": "https://lazu.ai/docs/errors#lz-3101",
"request_id": "req_lazu_01KSBV4MC6THZ9TCZEM38KPYRX",
"details": {}
}
}Anthropic 互換のルート(/v1/messages)は Anthropic の形式とタイプを使います。
{
"type": "error",
"error": {
"type": "billing_error",
"message": "Wallet balance is too low for this request. Top up to continue.",
"code": "insufficient_quota",
"lazu": "LZ-3101",
"docs": "https://lazu.ai/docs/errors#lz-3101"
},
"request_id": "req_lazu_01KSBV4MC6THZ9TCZEM38KPYRX"
}| フィールド | 意味 |
|---|---|
code | 何が起きたか。安定しており、分岐に使います。 |
type | 次に何をすべきか(下表)。安定しています。 |
lazu | Lazu エラー番号。安定しています。サポートへの問い合わせ時に伝えてください。 |
message | 開発者向けの英語の説明。変わることがあるため、解析しないでください。 |
param | 問題のあるリクエストのフィールド(ある場合)。 |
details | field、model、retry_after_seconds などの構造化された値。 |
request_id | このエラーが属するリクエスト。 |
docs | このページの該当番号へのリンク。 |
すべてのエラーレスポンスには X-Lazu-Request-Id と X-Lazu-Error ヘッダーも付きます。
エラータイプ
| タイプ | HTTP | 対処 |
|---|---|---|
invalid_request_error | 400、413 | リクエストを修正してください。そのまま再試行しても解決しません。 |
authentication_error | 401 | API キーを修正してください。無効・期限切れ・無効化はそれぞれ別の code です。 |
permission_error | 403 | キーまたはアカウントにこの操作が許可されていません(IP、モデル、ベンダー、プロジェクトの範囲)。 |
not_found_error | 404 | パス、モデル、ID が正しくありません。 |
insufficient_quota | 429 | 残高または予算が尽きました。チャージするか予算を上げてください。再試行では解決しません。 |
rate_limit_error | 429 | Retry-After の時間を待ってから再試行してください。 |
content_policy_violation_error | 400 | モデルが内容を拒否しました。内容を変更してください。 |
overloaded_error | 503 | 混雑しています。バックオフして後で再試行してください。 |
timeout_error | 504 | 時間内に応答がなく、結果は不明です。再送前に確認してください。 |
api_connection_error | 502 | 接続が切れ、結果は不明です。再送前に確認してください。 |
api_error | 500、502 | Lazu またはモデルが失敗しました。冪等なリクエストは再試行でき、続く場合はリクエスト ID を添えてサポートへ。 |
/v1/messages では、insufficient_quota は Anthropic の billing_error として、timeout_error と api_connection_error は api_error として返ります。
retry 方針
出力をまだ受信しておらず、安全に再送できるリクエストだけを再試行してください。429 は一時的な制限と insufficient_quota を区別します。残高不足は再試行では解決しません。Retry-After があれば従い、一時障害には回数を制限したバックオフを使います。実行状態が不明な場合、SDK の自動再試行は別のモデル呼び出しになることがあります。ゲートウェイのフェイルオーバーとクライアントの再試行は別の判断です。
ストリーム
ストリームが始まると HTTP ステータスは変更できません。Lazu はプロトコル固有のエラーフレームで、同じエラーオブジェクトを付けてストリームを終了します(Chat Completions は data: {"error": {...}} の後に data: [DONE]、Responses と Messages は error イベント)。途中までの出力を保持し、再送前にリクエスト詳細を確認してください。413 request_body_too_large はリクエストを小さくし、503 gateway_overloaded はバックオフして後で再試行してください。
サポートへの問い合わせ
Lazu のすべてのレスポンス(成功・失敗とも)には次が含まれます。
X-Lazu-Request-Id: req_lazu_01KSBV4MC6THZ9TCZEM38KPYRXLZ- 番号と一緒にサポートチケットへ貼り付けてください。ルーティング、上流呼び出し、課金までの経路を追跡できます。
エラー番号一覧
LZ-1xxx · リクエスト
LZ-20xx · API キー
LZ-21xx · コンソールのセッション
LZ-22xx · サインインと登録
LZ-23xx · アクセス
LZ-26xx · 判別モデル
LZ-3xxx · ウォレットと予算
LZ-4xxx · モデルとルート
LZ-5xxx · レートと容量
LZ-6xxx · 上流プロバイダー
LZ-7xxx · コンソール
LZ-9xxx · 内部エラー
| 番号 | Code | HTTP | タイプ | 意味と対処 |
|---|---|---|---|---|
LZ-9001 | internal_error | 500 | api_error | サービスがこのリクエストを完了できませんでした。繰り返し発生する場合は、リクエスト ID を添えてサポートにお問い合わせください。 |
LZ-9002 | not_implemented | 501 | api_error | この機能はまだ利用できません。 |