ERROR REFERENCE
エラーリファレンス
公開APIのエラーは RFC 9457 の application/problem+json で返します。各エラーの type は、このページのコード小文字アンカー(#<code>)を指します。以下に全24コード(変更監視・Webhookのコードを含む)の意味・発生条件・回復手順をまとめます。
参照の正はOpenAPI仕様です。本ページと仕様に矛盾がある場合はOpenAPIが正となります。
VALIDATION_ERROR
Invalid request parameters
意味
リクエストのパラメータが仕様を満たしていません。
発生条件
必須項目の欠落・形式不正・範囲外・未対応値のいずれか。details 配列に field(JSON Pointer またはパラメータ名)と code(required / format / range / unsupported_value)が入ります。バッチ名寄せ(POST /v1/batch/match)のボディが5MiBを超えた場合のみ、同じ VALIDATION_ERROR を HTTPステータス413(Payload Too Large)で返します(details の code は range)。それ以外は400です。
回復手順
レスポンスの
detailsを参照し、該当フィールドを修正して再送してください。413(5MiB超過)の場合は入力を分割し、1リクエストあたり5MiB以下に収めて再送してください。
リトライ不可(
retryable: false)です。入力を直さない限り同じエラーになります。
FORBIDDEN
Forbidden
意味
認証は成功していますが、この操作の権限がありません。
発生条件
認可起因の拒否専用です。プラン起因の拒否は PLAN_UPGRADE_REQUIRED として分離されます。
回復手順
APIキー(
x-api-key)の操作では、対象リソースへのアクセス権を持つキーで再試行してください。Webhook受信先の管理(
Authorization: Bearer <JWT>)では、ログイン利用者が対象organizationのmemberであること、書き込み操作ではowner / adminであることを確認してください。リトライ不可(
retryable: false)です。
PLAN_UPGRADE_REQUIRED
Plan upgrade required
意味
現在のプランではこの機能を利用できません。
発生条件
現在は返却されない予約コードです。
回復手順
料金ページ(/pricing)で必要なプランへ変更してください。
リトライ不可(
retryable: false)です。プラン変更後に再試行してください。
IDEMPOTENCY_CONFLICT
Idempotency key conflict
意味
同一の Idempotency-Key を、内容の異なるリクエストで再送しました。
発生条件
既に使用済みの冪等キーで、初回とペイロードが一致しないリクエストを送ったとき。
回復手順
同一の
Idempotency-Keyは必ず同一ペイロードで再送してください。内容が異なる新しいリクエストには別の冪等キーを発行してください。
BILLING_CONFLICT
Billing operation conflicts with current subscription state
意味
課金操作が現在のサブスクリプション状態と競合しています。
発生条件
現在の契約状態では実行できない課金操作を要求したとき。
回復手順
ダッシュボードで現在のサブスクリプション状態を確認してから操作し直してください。
リトライ不可(
retryable: false)です。
ACCOUNT_DELETION_BLOCKED
Account deletion is blocked by current account state
意味
現在のアカウント状態では退会(削除)を実行できません。
発生条件
有効なサブスクリプションや未完了処理など、削除を妨げる状態が残っているとき。
回復手順
先行して必要な解約・処理完了を行ってから、退会を再実行してください。
リトライ不可(
retryable: false)です。
ACCOUNT_ALREADY_DELETED
Account is already deleted
意味
対象アカウントは既に削除済みです。
発生条件
削除済みアカウントに対して再度削除等の操作を要求したとき。
回復手順
アカウントは既に削除されています。追加の操作は不要です。
リトライ不可(
retryable: false)です。
ACCOUNT_REAUTH_REQUIRED
Recent reauthentication is required
意味
この操作には直近の再認証が必要です。
発生条件
次の2ケースで返ります。(a) 削除用の再認証エンドポイント自体が失敗したとき(POST /v1/account/deletion-reauth/password のパスワード不一致、Googleコールバックの state・本人性の不一致、POST /v1/account/deletion-reauth/google/exchange のコード無効・期限切れ等)。(b) 退会(POST /v1/account/deletion)で削除用の再認証チャレンジ(deletion_challenge_token)が未指定・無効・期限切れのとき。いずれも単に再ログインしても同じ403が続きます。
回復手順
(a) 再認証エンドポイント自体が403の場合は、正しい資格情報(正しいパスワード)またはGoogleのフローをやりなおしてください。Googleは
POST /v1/account/deletion-reauth/google/startで発行されたstateとコールバックの本人性が一致する状態で最初からやり直す必要があります。(b) deletion(POST /v1/account/deletion)が403の場合は、パスワードなら
POST /v1/account/deletion-reauth/password、GoogleならPOST /v1/account/deletion-reauth/google/start→ コールバック →POST /v1/account/deletion-reauth/google/exchangeの順でdeletion_challenge_tokenを取り直してください。取り直した
deletion_challenge_tokenをPOST /v1/account/deletionのボディに付けて、期限内に再試行してください。リトライ不可(
retryable: false)です。正しい資格情報・フロー、または有効なdeletion_challenge_tokenがない限り同じエラーになります。
BATCH_NOT_COMPLETED
Batch job is not completed
意味
バッチジョブがまだ完了していません。
発生条件
status が queued / processing のジョブに対して結果ダウンロードを要求したとき。
回復手順
GET /v1/batch/{job_id}で終端状態(status: completedまたはstatus: failed)になるまでポーリングしてください。queued/processingの間は結果を取得できません。completedなら結果をダウンロードしてください。failedならBATCH_FAILEDの回復手順に従って新規ジョブを投入してください。リトライ不可(
retryable: false)です。終端状態に達してから取得し直してください。
BATCH_FAILED
Batch job processing failed
意味
バッチジョブの処理が失敗しました。
発生条件
status が failed のジョブに対して結果ダウンロードを要求したとき。
回復手順
failedジョブの
error.retryableを確認してください。true(ワーカー側の一過性失敗)の場合は同一入力で再投入できます。falseの場合のみ入力データを見直してから再投入してください。再投入時は新しいジョブを作成させるため、元の投入で付けた
Idempotency-Keyを変更するか省略してください。同一キーは保存期間(24時間)内は失敗ジョブの受付応答をリプレイするだけで、新しいジョブは作成されません。失敗した同一ジョブ自体は再実行できません。復旧はいずれの場合も新規ジョブの投入で行います。
NOT_FOUND
Resource not found
意味
指定したリソースが存在しません。
発生条件
存在しない法人番号・登録番号・ジョブID等を指定したとき。
回復手順
パスやパラメータの識別子が正しいか確認してください。
リトライ不可(
retryable: false)です。
NOT_IMPLEMENTED
Endpoint is not implemented
意味
このエンドポイントはまだ実装されていません。
発生条件
未提供の機能を呼び出したとき。
回復手順
最新のAPIドキュメントで提供済みのエンドポイントを利用してください。
リトライ不可(
retryable: false)です。
RATE_LIMIT_EXCEEDED
Rate limit exceeded
意味
短時間(分単位rpm)のリクエスト上限を超えました。
発生条件
分単位のレート上限に達したとき。ボディは limit_scope: "rpm" と retry_after(既定60秒)を持ちます。現在のレート枠は X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset(Reset はepoch秒)ヘッダーで返します。
回復手順
ボディの
retry_after(既定60秒。Retry-Afterヘッダーにも同値が入ります)だけ待ってから再試行してください。リトライ可能(
retryable: true)です。指数バックオフの併用を推奨します。
QUOTA_EXCEEDED
Monthly quota exceeded
意味
月次のクォータ(利用上限)を使い切りました。
発生条件
月次 api_requests または batch_rows の上限に達したとき。ボディの limit_scope にどちらの枠かが入り、retry_after に次サイクルまでの秒数が入ります。api_requests 枠の残量は X-Quota-Limit / X-Quota-Remaining ヘッダーで返します(batch_rows 枠にはヘッダーがなく、上限超過は limit_scope で判別します)。
回復手順
ボディの
retry_after(次サイクルのリセットまでの秒数)だけ待つか、料金ページ(/pricing)で上位プランへ変更してください。リトライ可能(
retryable: true)ですが、枠が回復するまでは同じエラーになります。
INTERNAL_ERROR
Internal server error
意味
サーバー内部で予期しないエラーが発生しました。
発生条件
上記いずれにも該当しない未分類のサーバー側エラー。
回復手順
自動リトライはしないでください。機械可読契約は
retryable: false(retry_afterもnull)です。即時に再試行すると二重実行やリトライストームを招きます。時間をおいて操作をやり直す場合は冪等性に注意してください。バッチ投入などでは
Idempotency-Keyを活用し、同一操作の重複作成を防いでください。継続する場合はサポートへ問い合わせてください。
RESOURCE_LIMIT_EXCEEDED
Active watch capacity exceeded
意味
activeな監視対象またはWebhook受信先の数が、プランの上限に達しています。
発生条件
PUT /v1/watch-targets/{identifier} で監視を新しく始めるとき(resource_limit.resource は watch_targets)、またはWebhook受信先の作成・再開(POST /v1/webhook-endpoints、POST /v1/webhook-endpoints/{id}/resume)で上限を超えるとき(resource_limit.resource は webhook_endpoints、titleは Active webhook endpoint capacity exceeded)。resource_limit の limit と current に上限と現在数が入ります。
回復手順
不要な監視を
DELETE /v1/watch-targets/{identifier}で停止するか、不要なWebhook受信先を削除または一時停止してから再試行してください。上限を増やす場合は料金ページ(/pricing)で上位プランへ変更してください。
リトライ不可(
retryable: false)です。
CHANGE_EVENT_EXPIRED
Change event has expired
意味
指定した変更イベントは保持期間を過ぎています。
発生条件
保持期限切れのイベントを GET /v1/change-events/{event_id} で取得したとき、GET /v1/change-events の after に指定したとき、またはそのイベントの配送を手動再送(POST /v1/webhook-endpoints/{id}/deliveries/{delivery_id}/replay)したとき。
回復手順
失効したイベントは取得・再送できず、過去の業務履歴は復元できません。
afterでincrementalを始める場合は、start=nowで新しいcheckpointを取得し、監視対象のfresh baselineで現在値を反映してから続きを取得してください(手順はドキュメントの /docs#change-monitoring-recovery)。リトライ不可(
retryable: false)です。
CHANGE_EVENT_HISTORY_GAP
Change event continuity was lost
意味
incrementalのcheckpoint以降に、取得できなくなったイベント(欠落)があります。
発生条件
GET /v1/change-events をincremental(after / start=now / そのcursor)で取得し、保持期間の経過などで連続性を保証できない位置に達したとき。watch_target_id で絞り込んでいても、欠落は組織全体で判定します。
回復手順
GET /v1/change-events?mode=incremental&start=nowで新しいcheckpointを先に保存し、active watchを列挙して各監視対象のfresh baseline(PUT/GET /v1/watch-targets/{identifier})をversion比較で反映してから、保存したcheckpointからincrementalで取得し直してください。途中で再びこのエラーになった場合は最初からやり直します。失効した過去の業務履歴は復元できません。historyへ切り替えても完全な回復にはなりません。
リトライ不可(
retryable: false)です。
WEBHOOK_ENDPOINT_RECOVERY_REQUIRED
Webhook endpoint requires a fresh successful test before resuming
意味
Webhook受信先を再開する条件を満たしていません。
発生条件
POST /v1/webhook-endpoints/{id}/resume で、recovery_required=true のpaused、または security_blocked 以外のdisabledの受信先に、現在の設定(config_revision)で成功したテスト送信がないとき。goneと disabled_reason=security_blocked のdisabledは、その状態になったあとにURLを変更していない場合も該当します。
回復手順
goneまたは
security_blockedの場合は、先にPATCH /v1/webhook-endpoints/{id}でURLを変更してください。現在の設定で
POST /v1/webhook-endpoints/{id}/testを成功させてから、再度resumeしてください。PATCHはテスト成功の記録を無効にするため、テストはURL変更のあとに行います。リトライ不可(
retryable: false)です。
WEBHOOK_ENDPOINT_NOT_ACTIVE
Webhook endpoint is not active
意味
Webhook受信先がactiveではないため、この操作を実行できません。
発生条件
disabled / goneの受信先を一時停止(POST /v1/webhook-endpoints/{id}/pause)しようとしたとき、またはactiveでない受信先の配送を手動再送(POST /v1/webhook-endpoints/{id}/deliveries/{delivery_id}/replay)しようとしたとき。
回復手順
GET /v1/webhook-endpoints/{id}で受信先の状態を確認してください。配送を再送する場合は、受信先を再開(resume)してactiveにしてから実行してください。
リトライ不可(
retryable: false)です。
SECRET_ROTATION_IN_PROGRESS
Webhook secret rotation is already in progress
意味
署名secretのgraceful rotationが進行中です。
発生条件
旧secretを併存させている期間(gracefulの24時間)に、再度 mode=graceful で POST /v1/webhook-endpoints/{id}/rotate-secret を実行したとき。
回復手順
併存期間が終わってから再実行してください。
secretの漏洩などですぐに切り替える必要がある場合は
mode=immediateを使います。旧secretはすぐに使われなくなるため、受信側の設定も同時に更新してください。リトライ不可(
retryable: false)です。
WEBHOOK_DELIVERY_NOT_REPLAYABLE
Webhook delivery cannot be replayed in its current state
意味
この配送は現在の状態では手動再送できません。
発生条件
POST /v1/webhook-endpoints/{id}/deliveries/{delivery_id}/replay で、配送の状態がexhausted / canceled以外(delivered / pending / retrying / delivering)のとき。
回復手順
GET /v1/webhook-endpoints/{id}/deliveries/{delivery_id}で配送の状態を確認してください。送信中・再送待ちの配送は完了を待ちます。手動再送できるのは、exhaustedまたはcanceledの配送です。
リトライ不可(
retryable: false)です。