ERROR REFERENCE

エラーリファレンス

公開APIのエラーは RFC 9457 の application/problem+json で返します。各エラーの type は、このページのコード小文字アンカー(#<code>)を指します。以下に全24コード(変更監視・Webhookのコードを含む)の意味・発生条件・回復手順をまとめます。

参照の正はOpenAPI仕様です。本ページと仕様に矛盾がある場合はOpenAPIが正となります。

APIドキュメントへ戻る

400 / 413

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)です。入力を直さない限り同じエラーになります。

401

UNAUTHORIZED

Unauthorized

意味

APIキーによる認証に失敗しました。

発生条件

x-api-key ヘッダーが未指定・無効・失効済みのとき。プラン特定不能のためレート制限・クォータヘッダーは送出されません。

回復手順

  • x-api-key ヘッダーに有効なAPIキーを指定しているか確認してください。

  • キーが失効している場合はダッシュボードのAPIキー画面(/dashboard/api-keys)で再発行してください。

403

FORBIDDEN

Forbidden

意味

認証は成功していますが、この操作の権限がありません。

発生条件

認可起因の拒否専用です。プラン起因の拒否は PLAN_UPGRADE_REQUIRED として分離されます。

回復手順

  • APIキー(x-api-key)の操作では、対象リソースへのアクセス権を持つキーで再試行してください。

  • Webhook受信先の管理(Authorization: Bearer <JWT>)では、ログイン利用者が対象organizationのmemberであること、書き込み操作ではowner / adminであることを確認してください。

  • リトライ不可(retryable: false)です。

403

PLAN_UPGRADE_REQUIRED

Plan upgrade required

意味

現在のプランではこの機能を利用できません。

発生条件

現在は返却されない予約コードです。

回復手順

  • 料金ページ(/pricing)で必要なプランへ変更してください。

  • リトライ不可(retryable: false)です。プラン変更後に再試行してください。

409

IDEMPOTENCY_CONFLICT

Idempotency key conflict

意味

同一の Idempotency-Key を、内容の異なるリクエストで再送しました。

発生条件

既に使用済みの冪等キーで、初回とペイロードが一致しないリクエストを送ったとき。

回復手順

  • 同一の Idempotency-Key は必ず同一ペイロードで再送してください。

  • 内容が異なる新しいリクエストには別の冪等キーを発行してください。

409

BILLING_CONFLICT

Billing operation conflicts with current subscription state

意味

課金操作が現在のサブスクリプション状態と競合しています。

発生条件

現在の契約状態では実行できない課金操作を要求したとき。

回復手順

  • ダッシュボードで現在のサブスクリプション状態を確認してから操作し直してください。

  • リトライ不可(retryable: false)です。

409

ACCOUNT_DELETION_BLOCKED

Account deletion is blocked by current account state

意味

現在のアカウント状態では退会(削除)を実行できません。

発生条件

有効なサブスクリプションや未完了処理など、削除を妨げる状態が残っているとき。

回復手順

  • 先行して必要な解約・処理完了を行ってから、退会を再実行してください。

  • リトライ不可(retryable: false)です。

409

ACCOUNT_ALREADY_DELETED

Account is already deleted

意味

対象アカウントは既に削除済みです。

発生条件

削除済みアカウントに対して再度削除等の操作を要求したとき。

回復手順

  • アカウントは既に削除されています。追加の操作は不要です。

  • リトライ不可(retryable: false)です。

403

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 がない限り同じエラーになります。

409

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)です。終端状態に達してから取得し直してください。

409

BATCH_FAILED

Batch job processing failed

意味

バッチジョブの処理が失敗しました。

発生条件

status が failed のジョブに対して結果ダウンロードを要求したとき。

回復手順

  • failedジョブの error.retryable を確認してください。true(ワーカー側の一過性失敗)の場合は同一入力で再投入できます。false の場合のみ入力データを見直してから再投入してください。

  • 再投入時は新しいジョブを作成させるため、元の投入で付けた Idempotency-Key を変更するか省略してください。同一キーは保存期間(24時間)内は失敗ジョブの受付応答をリプレイするだけで、新しいジョブは作成されません。

  • 失敗した同一ジョブ自体は再実行できません。復旧はいずれの場合も新規ジョブの投入で行います。

404

NOT_FOUND

Resource not found

意味

指定したリソースが存在しません。

発生条件

存在しない法人番号・登録番号・ジョブID等を指定したとき。

回復手順

  • パスやパラメータの識別子が正しいか確認してください。

  • リトライ不可(retryable: false)です。

501

NOT_IMPLEMENTED

Endpoint is not implemented

意味

このエンドポイントはまだ実装されていません。

発生条件

未提供の機能を呼び出したとき。

回復手順

  • 最新のAPIドキュメントで提供済みのエンドポイントを利用してください。

  • リトライ不可(retryable: false)です。

429

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)です。指数バックオフの併用を推奨します。

429

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)ですが、枠が回復するまでは同じエラーになります。

503

DEPENDENCY_UNAVAILABLE

Dependency is unavailable

意味

依存するバックエンド基盤が一時的に利用できません。

発生条件

認証・クォータ・冪等性・リポジトリ操作などが依存するバックエンド基盤(データベース・キャッシュ等)に一時的な障害・遅延が発生したとき。

回復手順

  • Retry-After(既定30秒)を目安に短いバックオフを置いて再試行してください。

  • リトライ可能(retryable: true)です。多くは一過性で自然回復します。

500

INTERNAL_ERROR

Internal server error

意味

サーバー内部で予期しないエラーが発生しました。

発生条件

上記いずれにも該当しない未分類のサーバー側エラー。

回復手順

  • 自動リトライはしないでください。機械可読契約は retryable: false(retry_after も null)です。即時に再試行すると二重実行やリトライストームを招きます。

  • 時間をおいて操作をやり直す場合は冪等性に注意してください。バッチ投入などでは Idempotency-Key を活用し、同一操作の重複作成を防いでください。

  • 継続する場合はサポートへ問い合わせてください。

409

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)です。

410

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)です。

410

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)です。

409

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)です。

409

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)です。

409

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)です。

409

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)です。