Claude Platform Docs
管理Compliance API

Compliance APIのエラーを処理する

HTTPステータスコード別のCompliance APIエラーレスポンスと、それぞれの原因および修正方法。

このページでは、一般的なCompliance APIのエラーレスポンスをHTTPステータスコード別に、それぞれの原因と修正方法とともに示します。

Compliance APIは、標準のAnthropicエラー形式でエラーを返します。すなわち、2xx以外のステータスコード、request-idレスポンスヘッダー、そしてtypeとmessageを含むerrorオブジェクトを持つJSONボディです。サポートにエスカレーションする際は、request-idヘッダーの値を含めてください。

{
  "error": {
    "type": "permission_error",
    "message": "Missing required scopes. Got: ['read:compliance_activities'] Needed one of: ['read:compliance_user_data', 'read:org_audit']"
  }
}

このページでは、ローカルセッションはユーザーのマシン上で実行され、リモートセッションはクラウドで実行されます。セッショントランスクリプトを取得するを参照してください。

メッセージ文字列ではなく、HTTPステータスコードとerror.typeで照合してください。メッセージはランブックにコピーできる程度には安定していますが、時間の経過とともに文言が変更される可能性があります。ステータスコードとtypeの値はAPI契約の一部です。ステータスコードとtypeが同じいくつかのレスポンスは、レスポンスにエラーコードが含まれる場合はerror.details.error_codeのエラーコードで、含まれない場合はメッセージで区別されます。それぞれ該当する箇所で説明しています。

次の表は、リトライすべきかどうかを一目で示しています。続く各セクションでは、エラーボディの原文と修正方法を示します。

ステータスリトライ可否状況
400 Bad Requestいいえリクエストを修正するか、メッセージで有効になっていないと示されている場合はCompliance APIを有効にしてから、再送信してください。error.details.error_codeがtranscript_page_read_limit_exceededの場合(メッセージでセッションのトランスクリプトのページが大きすぎて読み取れないと示されている場合)は、同じリクエストを再送信しないでください。代わりに行うべきことはトランスクリプトのページが大きすぎるで説明しています。
401 Unauthorizedいいえキーが認識されない、無効化されている、または有効期限が切れています。キーを再度有効にするか置き換えてから、再送信してください。
403 Forbiddenいいえ不足しているスコープを追加するか、正しい種類のキーを使用してから、再送信してください。
404 Not Found通常はいいえリソースを名指しするメッセージは、そのリソースが削除されたか、存在しなかったことを意味します。キューから削除してください。単なるNot foundというメッセージは、リソースが存在しないことではなく、リクエストが認証されなかった(またはパスが存在しない)ことを意味します。リクエストが認証されていないを参照してください。セッションエンドポイントにはさらに2つのケースがあります。ローカルセッションエンドポイントでは、Local sessions are not available.というメッセージ(一覧を含むすべての呼び出しで返されます)は、セッションが存在しないことではなく、エンドポイントが現在親組織で利用できないことを意味します。キューに入れたIDは保持し、ローカルセッションが見つからないを参照してください。まだpendingステータスのリモートセッションは、開始されるまでそのmessagesエンドポイントで404を返します。リモートセッションが見つからないを参照してください。
409 Conflictいいえリクエストがリソースの現在の状態と競合しています。競合を解消(子リソースの切り離しなど)してから、リトライしてください。
429 Too Many Requestsはい、retry-afterの後retry-afterに示された秒数だけ待ってからリトライしてください。カーソルは進めないでください。
500 Internal Server Errorx-should-retryによるリトライする前にx-should-retryレスポンスヘッダーを確認してください。
502, 503, 504, 529はい、バックオフ付きで一時的なエラーです。指数バックオフでリトライしてください。例外:一部のローカルセッションの503は一時的なものではありません。ローカルセッションが一時的に利用できないを参照してください。

400 Bad Request

リクエストは構文的には有効でしたが、サーバーがパラメータを拒否したか、組織でCompliance APIが有効になっていません。メッセージに示された原因を修正して再送信してください。1つの400だけは異なります。トランスクリプトのページが大きすぎるは、すべてのパラメータが有効であっても、非常に大きなセッションのページに対してローカルセッションのmessagesエンドポイントが返す可能性があるエラーです。その項目では、再送信する代わりに行うべきことを説明しています。

Compliance APIが有効になっていない

Type: invalid_request_error

Compliance API is not enabled for this organization

原因: キーは有効ですが、キーが属する組織または親組織でCompliance APIが有効になっていません。APIが有効になるまで、またAPIが有効になった後に管理者がAPIをオフにした場合も、すべてのエンドポイントがこのレスポンスを返します。

修正方法: Compliance APIをセットアップするの手順に従ってCompliance APIを有効にしてから、リクエストを再送信してください。

不明なクエリパラメータ

Type: invalid_request_error

Unknown query parameter: 'created_at[gte]'. Did you mean 'created_at.gte'?

原因: リクエストに、エンドポイントで定義されていないクエリパラメータが含まれていました。Compliance APIは認識できないパラメータを無視せず、拒否します。メッセージにはパラメータ名が示され、ドットの代わりにブラケット表記を使用した場合や[]サフィックスが欠けている場合など、惜しい間違いについては定義済みの名前が提案されます。

修正方法: エンドポイントのCompliance APIリファレンスページに示されているパラメータ名を使用してください。範囲フィルターはドット表記を使用し(例:created_at.gte)、配列フィルターには[]サフィックスを付けます(例:activity_types[])。ページネーションパラメータは、エンドポイントに応じてafter_id、before_id、またはpageです。

無効なパラメータ値

Type: invalid_request_error

limit: Input should be less than or equal to 1000
created_at.gte: Input should be a valid datetime or date, invalid character in year
activity_types[].0: Input is not one of the permitted values.

原因: クエリパラメータの値が検証に失敗しました。メッセージはパラメータ名(配列パラメータの場合はその後に要素の位置)で始まり、続いて満たされなかった制約が示されます。ここでは一般的な3つのケースを示しています。エンドポイントの最大値を超えるlimit(メッセージ内の数値はそのエンドポイントの最大値です)、日付またはタイムスタンプとして解析できないcreated_at.*またはupdated_at.*の値、およびサポートされているアクティビティタイプではないactivity_types[]の値です。

修正方法: メッセージに示されたパラメータを修正してください。各リストエンドポイントには独自のlimitの範囲があります。対応するCompliance APIリファレンスページのパラメータ制約を参照してください。タイムスタンプは、明示的なUTCオフセットを含むRFC 3339形式で送信してください(例:2024-03-01T00:00:00Zまたは2024-03-01T00:00:00+00:00)。ローカルセッションの一覧は、オフセットのないタイムスタンプを拒否します(created_at.gte: Input should have timezone info)。サポートされているactivity_types[]の値については、コンプライアンスアクティビティをクエリするを参照してください。

ローカルセッション一覧(GET /v1/compliance/apps/sessions/local)は、下限(created_at.gteまたはcreated_at.gt)と上限(created_at.ltまたはcreated_at.lte)を指定し、上限が下限より後でない場合にも、400 invalid_request_errorを返します。等しい境界は、created_at.gteとcreated_at.lteの組み合わせの場合にのみ許可されます。メッセージには、次の例のようにその2つのパラメータが示されます。

created_at.lt must be strictly after created_at.gte.
created_at.lte must be at or after created_at.gte.

下限より後の上限を送信するか、いずれかの境界を省略してください。

セッショントランスクリプトのエンドポイント(GET /v1/compliance/apps/sessions/local/{session_id}/messagesおよびGET /v1/compliance/apps/sessions/remote/{session_id}/messages)も、切り詰めパラメータを同じ方法で検証します。tool_use_input_max_bytesとtool_result_max_bytesはそれぞれ正のバイト数または-1(サーバーの最大値)を受け付けるため、0などの値は同じ400 invalid_request_errorを返します。

無効なページネーションカーソル

Type: invalid_request_error

Invalid activity_id format: 'activity_invalid123'
Invalid pagination cursor for 'after_id'

原因: 「pagination cursor」(ページネーションカーソル)をデコードできませんでした。Activity Feedでは、APIが発行したカーソルでも正しい形式のアクティビティIDでもないafter_idまたはbefore_idの値に対して、送信された値をそのまま含む1つ目のボディが返されます。チャットおよびチャットメッセージのエンドポイントでは、デコードできないafter_idまたはbefore_idの値に対して、パラメータ名を示す2つ目のボディが返されます。

修正方法: ページネーションカーソルは不透明な文字列として扱ってください。常に前のページで返されたfirst_idまたはlast_idの値をコピーし、has_moreがfalseになったら停止してください。オブジェクトIDからカーソルを組み立てないでください。

ディレクトリ、プロジェクト、およびセッションのエンドポイント(組織、ユーザー、ロール、ロール権限、グループ、グループメンバー、プロジェクト、プロジェクトの添付ファイル、ローカルおよびリモートセッション、セッションメッセージ)は、after_idとbefore_idではなく、不透明なpageトークンでページネーションを行います。同じアドバイスが当てはまります。前のレスポンスのnext_pageの値を変更せずに渡し、has_moreがfalseになったら(またはhas_moreを返さないセッションエンドポイントでは、next_pageがnullになったら)停止してください。不正な形式のpageトークンは、不正な形式のafter_idまたはbefore_idと同じ400 invalid_request_errorを、エンドポイント固有のメッセージとともに返します。

ページネーションされる2つのローカルセッションエンドポイント(一覧とmessagesエンドポイント)は、デコードできないpage値に対して次の400 invalid_request_errorを返します。たとえば、保存後に切り詰められたり改変されたりしたトークン、あるいは別のエンドポイントや別の親組織のもとで発行されたトークンなどです。ローカルセッションのmessagesエンドポイント(GET /v1/compliance/apps/sessions/local/{session_id}/messages)では、各pageカーソルは発行対象のセッションとorderにも紐付けられているため、別のセッションやソート順に対して発行されたカーソルも同じボディを返します。

The page parameter is not a valid cursor for this request.

messagesエンドポイントのカーソルは、ウォーク(ページを一通り辿ること)の開始から24時間後に期限切れにもなります。期限切れのカーソルは次を返します。

The page cursor has expired. Restart the walk without a page parameter; results will reflect the current retention boundary.

最初のボディの場合は、前のレスポンスのnext_pageの値を変更せずに、それを発行したエンドポイントとセッションに再送信してください。期限切れのカーソルの場合は、pageパラメータなしで再開してください。新しいウォークは開始時点で有効な保持境界を反映するため、その間に保持期間を過ぎたメッセージは返されなくなります(ローカルセッショントランスクリプトを取得するを参照)。

トランスクリプトのページが大きすぎる

Type: invalid_request_error

エラーコード: transcript_page_read_limit_exceeded(error.details.error_codeで返されます)

This page of the session's transcript is too large to read, and retrying will not help. If you are reading newest first (order=desc), read this session oldest first instead: omit the order and page parameters, then follow next_page.

原因: GET /v1/compliance/apps/sessions/local/{session_id}/messagesは、非常に大きなセッションのページに対してこのエラーを返すことがあります。このエラーを返すのはこのエンドポイントだけです。他の400とinvalid_request_errorタイプを共有しているため、文言が変更される可能性のあるメッセージテキストではなく、エラーコードで識別してください。

修正方法: リクエストをリトライしないでください。order=descを使用していた場合は、代わりにそのセッションを古い順に読み取ってください。

  • orderなし(またはorder=asc)かつpageなしでセッションのウォーク(ページを一通りたどる処理。ローカルセッションのトランスクリプトを取得するを参照)を最初からやり直し、next_pageがnullになるまでたどります。新しい順の読み取りですでに保存したメッセージは同じidを保持しているため、idで重複を排除してください。
  • このウォークでは、クライアントのリクエストタイムアウトを少なくとも5分に設定してください。
  • limitを下げることは、このエラーを回避する確実な方法ではありません。

古い順のリクエストがこのエラーを返した場合も、リトライしないでください。すでに読み取ったページは保持し、そのセッションを不完全として記録し、エクスポートの残りを続行したうえで、request-idレスポンスヘッダーを添えてAnthropicの担当者に連絡してください。

401 Unauthorized

リクエストに含まれていたCompliance Access Key(sk-ant-api01-...)またはAdmin APIキー(sk-ant-admin01-...)で認証できませんでした。キーを含まないリクエスト、または別の種類のキーを含むリクエストは、組織設定を除くすべてのエンドポイントで代わりに404 Not Foundを返し、スコープが誤っている有効なキーは403 Forbiddenを返します。

無効、無効化済み、または期限切れのAPIキー

Type: authentication_error

API key is invalid.
API key has been deactivated.
API key has expired.

原因: API key is invalid.は、送信された値が使用可能なキーと一致しないことを意味します。たとえば、保存時に切り詰められたり改変されたりした場合です。API key has been deactivated.は、キーが無効化または削除されたことを意味します。API key has expired.は、Admin APIキーの有効期限が過ぎたことを意味します。Compliance Access Keyは有効期限付きでは作成されません。

修正方法: API key is invalid.の場合は、クライアントが送信する値を、キー作成時に保存したシークレットと比較してください。完全なシークレットは一度しか表示されないため、保存したコピーが誤っている場合は新しいキーを作成してください。API key has been deactivated.の場合、キーが無効化されただけであれば再度有効にしてください。Compliance Access Keyの場合はclaude.ai > Organization settings > APIで、Admin APIキーの場合はClaude ConsoleのAdmin keysページ(platform.claude.com/settings/admin-keys)で行います。削除されたキーは復元できません。削除されたキーまたは期限切れのキーの場合は、キーの管理とローテーションの説明に従って新しいキーを作成し、それを使用するように統合を更新してください。

403 Forbidden

x-api-keyのキーは有効ですが、エンドポイントが受け付ける「scope」(スコープ)を持っていません。そのままのメッセージには、キーが持つスコープ(Got:)と、エンドポイントが受け付けるスコープ(読み取りエンドポイントではNeeded one of:で、列挙されたスコープのいずれか1つで十分です。削除エンドポイントではNeeded:)が列挙されるため、Claude Consoleやclaude.aiを再確認しなくても、キーが持つスコープを確認できます。読み取りエンドポイントでは、受け付けられるリストにread:org_auditも含まれます。これはすべてのCompliance API読み取りエンドポイントをカバーする読み取り専用の監査スコープです。Claude Enterpriseキーのスコープを選択するを参照してください。Compliance Access Keyのスコープは作成後に変更できないため、スコープ不足に対する各修正方法では、既存のキーを編集するのではなく新しいキーを作成するよう案内しています。スタンドアロンのClaude Console組織(親組織を持たない組織)はCompliance Access Keyを作成できないため、それを必要とする修正方法は適用されません。そのような組織はActivity Feedのみをクエリできます。

スコープ不足: Activity Feed

Type: permission_error

Missing required scopes. Got: ['read:compliance_user_data'] Needed one of: ['read:compliance_activities', 'read:org_audit']

原因: read:compliance_activitiesを持たないキーがGET /v1/compliance/activitiesの呼び出しに使用されました。このエラーに至る一般的な経路は2つあります。

  • Compliance Access Key(sk-ant-api01-...)がread:compliance_activitiesスコープなしで作成された。
  • Claude Console Admin APIキー(sk-ant-admin01-...)が、組織でCompliance APIが有効になっていない間に作成された。Compliance APIが有効になっていない間に作成されたキーはこのスコープを持ちません。Compliance APIをセットアップするを参照してください。

修正方法: Compliance Access Keyのスコープは作成後に変更できません。read:compliance_activitiesを含む新しいキーを作成するか、Claude Console Admin APIキーを使用してください。Admin APIキーがこのスコープを持つ条件については、どのキーが必要ですか?を参照してください。

スコープ不足: 組織データ

Type: permission_error

Missing required scopes. Got: ['read:compliance_user_data'] Needed one of: ['read:compliance_org_data', 'read:org_audit']

原因: read:compliance_org_dataを持たないキーが、組織、ロール、グループ、または有効設定のエンドポイントの呼び出しに使用されました。このエラーに至る一般的な経路は2つあります。

  • Compliance Access Key(sk-ant-api01-...)がread:compliance_org_dataスコープなしで作成された。
  • Claude Console Admin APIキー(sk-ant-admin01-...)が使用された。Admin APIキーはread:compliance_activitiesのみを持ち、組織メタデータを読み取ることはできません。

修正方法: read:compliance_org_dataを選択して新しいCompliance Access Keyを作成してください。Admin APIキーは組織メタデータを読み取れないため、Compliance Access Keyが必要です。

廃止済みスコープ: 組織設定

Type: permission_error

Missing required scopes. Got: ['read:compliance_org_settings'] Needed one of: ['read:compliance_org_data', 'read:org_audit']

原因: read:compliance_org_settingsスコープは2026年6月30日に廃止されました。GET /v1/compliance/organizations/{organization_id}/settingsは現在、他の組織エンドポイントと同じスコープであるread:compliance_org_dataを必要とし、廃止済みスコープはもはや何も認可しません。read:compliance_org_settingsのみを持つCompliance Access Keyは、廃止前には機能していたとしても、settingsエンドポイントへのすべての呼び出しでこのエラーを返します。廃止済みスコープは、キー作成時に選択することも付与することもできなくなりました。

修正方法: Compliance Access Keyのスコープは作成後に変更できません。read:compliance_org_dataを選択して新しいCompliance Access Keyを作成し、インテグレーションをそれを使用するように更新してから、古いキーを削除してください。すでにread:compliance_org_dataを持つキーは廃止の影響を受けません。

スコープ不足: ユーザーデータ

Type: permission_error

Missing required scopes. Got: ['read:compliance_activities'] Needed one of: ['read:compliance_user_data', 'read:org_audit']

原因: read:compliance_user_dataを持たないキーが、チャット、メッセージ、ファイル、プロジェクト、セッション、組織ユーザー、またはグループメンバーのエンドポイントの呼び出しに使用されました。このエラーに至る一般的な経路は2つあります。

  • Compliance Access Key(sk-ant-api01-...)がread:compliance_user_dataスコープなしで作成された。
  • Claude Console Admin APIキー(sk-ant-admin01-...)が使用された。Admin APIキーはread:compliance_activitiesのみを持ち、read:compliance_user_dataを付与できないため、チャット、ファイル、プロジェクト、プロジェクト添付ファイル、セッション、ユーザー、またはグループメンバーのエンドポイントを呼び出すことはできません。

修正方法: claude.aiでread:compliance_user_dataを選択して作成したCompliance Access Keyを使用してください。リクエストが本当にActivity Feedのみであるべき場合は、代わりにAdmin APIキーをGET /v1/compliance/activitiesに向けてください。

スコープ不足: 削除

Type: permission_error

Missing required scopes. Got: ['read:compliance_user_data'] Needed: ['delete:compliance_user_data']

原因: delete:compliance_user_dataを持たないCompliance Access Keyが、チャット、ファイル、またはプロジェクトのDELETEエンドポイントの呼び出しに使用されました。

修正方法: delete:compliance_user_dataを選択して新しいCompliance Access Keyを作成してください。読み取り専用の監査キーがコンテンツを削除できないように、削除スコープはread:compliance_user_dataとは別になっています。

404 Not Found

メッセージがリソースまたはリソースタイプを名指しする404は、パス内のIDが存在しないか、すでに削除されていることを意味します。Compliance APIによる削除は即時かつ永続的であるため、以前に把握していたIDに対する404は、通常コンテンツが失われたことを意味します。つまり、Compliance APIの削除呼び出しによって完全に削除されたか、保持ポリシーによって削除されたか、ファイルやアーティファクトの場合はユーザーがclaude.aiでチャットを削除した際にそのチャットとともに削除されたということです。単なるNot foundというメッセージの404は異なります。これはリクエストが認証されなかった(またはパスが存在しない)ことを意味し、リストエンドポイントを含むあらゆるエンドポイントが返す可能性があります。リクエストが認証されていないを参照してください。セッションエンドポイントには2つのケースが追加されます。ローカルセッションエンドポイントでは、エンドポイントが親組織で利用できない間、別の404メッセージであるLocal sessions are not available.が(一覧を含む)すべての呼び出しで返されます。これはセッションIDに依存せず、一時的な場合があります。ローカルセッションが見つからないを参照してください。リモートセッションエンドポイントでは、まだプロビジョニング中のセッション(statusがpending)にはトランスクリプトがまだないため、セッションが開始されるまでそのmessagesエンドポイントは404を返します。リモートセッションが見つからないを参照してください。各修正方法で挙げているアクティビティタイプの文字列(例:claude_chat_created)は、Activity Feedのactivity_types[]フィルターに渡せる値です。サポートされているすべての値については、コンプライアンスアクティビティをクエリするを参照してください。

リクエストが認証されていない

Type: not_found_error

Not found

原因: リクエストに、Compliance APIが受け付ける認証情報が含まれていませんでした。APIキーが送信されなかったか、キーがCompliance Access Key(sk-ant-api01-...)またはAdmin APIキー(sk-ant-admin01-...)ではありません(例:Claude APIキー(sk-ant-api03-...))。ステータス、type、メッセージは存在しないパスの場合と同じで、エンドポイントやリソースIDには依存しないため、GET /v1/compliance/activitiesなどのリストエンドポイントもこのボディを返します。唯一の例外はGET /v1/compliance/organizations/{organization_id}/settingsで、これらのリクエストに対して401 authentication_errorを返します。すべてのエンドポイントで、認証できないCompliance Access KeyまたはAdmin APIキーは、代わりに401 Unauthorizedを返します。

修正方法: キーをx-api-keyヘッダーで送信し、そのプレフィックスを確認してください。Compliance APIはsk-ant-api01-...とsk-ant-admin01-...のキーのみを受け付けます。どのキーが必要ですか?を参照してください。ヘッダーとキーが正しく、他のパスは成功するのに1つのパスだけがNot foundを返す場合は、そのパスをCompliance APIリファレンスと照合してください。

チャットが見つからない

Type: not_found_error

Chat conversation not found: 'claude_chat_01H5CWunD7RpVJ5bHa8RCkja'

原因: パス内のチャットIDが、Compliance APIを通じて読み取り可能なチャットと一致しません。チャットは以前のCompliance API呼び出しによってハード削除されたか、組織の保持ポリシーによって削除された可能性があります。あるいは、呼び出し元のキーが読み取れない組織に属している可能性があります。ユーザーがclaude.aiで削除したチャットは404を返しません。deleted_atが設定された状態で読み取り可能なままですが、メッセージコンテンツは含まれません。

修正方法: 最近のclaude_chat_createdまたはclaude_chat_viewedアクティビティとチャットIDを照合してください。アクティビティが最近のもので、それでも読み取りが失敗する場合、チャットはハード削除された(このAPIを通じて、または保持ポリシーの期限切れによって)か、キーのスコープ外の組織に属しています。

ファイルが見つからない

Type: not_found_error

File not found: 0d3b8f72-6c1e-4a59-b2de-7f4c9a1e5b60

原因: ファイルIDがキーで読み取り可能な組織に存在しないか、ファイルが削除されています。claude.aiでチャットを削除すると、チャット自体は一覧に残りますが、そのチャットに添付されたファイルも削除されます。メッセージでは、リクエストで送信されたclaude_file_... IDではなく、基になるUUIDでファイルが識別されます。メタデータ、コンテンツ、および削除のエンドポイントがこのボディを返します。これはチャットに添付されたファイル(claude_file_...)とプロジェクトファイルの両方に適用されます。

修正方法: 最近のclaude_file_uploadedまたはclaude_file_deletedアクティビティと照合してください。チャットとともに削除されたファイルにはclaude_file_deletedアクティビティがないため、チャットのclaude_chat_deletedアクティビティも確認してください。ファイルが削除されている場合、バイナリは失われています。アクティビティの記録は、6年間の保持期間中はフィードに残ります。

生成されたファイルまたはアーティファクトが見つからない

Type: not_found_error

Generated file not found: 'claude_gen_file_01TbR8wAcCeFhJkLnPqStUvX'
Generated file content not found: 'claude_gen_file_01TbR8wAcCeFhJkLnPqStUvX'
Artifact version not found: 'claude_artifact_version_01KmNpQrSt3UvWxYz5AbCdEfG'

原因: パス内のIDが、Compliance APIで読み取り可能なツール生成ファイルまたはアーティファクトのバージョンと一致しません。生成ファイルのメタデータエンドポイントは1つ目のボディを、コンテンツエンドポイントは2つ目のボディを、両方のアーティファクトエンドポイントは3つ目のボディを返します。生成されたファイルとアーティファクトは、ユーザーがclaude.aiでチャットを削除した場合を含め、それらが作成されたチャットとともに削除されます。

修正方法: チャットメッセージを取得するを使用して、IDの取得元のチャットを調べてください。チャットのdeleted_atが設定されている場合、またはclaude_chat_deletedアクティビティがそのチャットを名指ししている場合、コンテンツは失われています。キューからIDを削除してください。それ以外の場合は、チャットのメッセージにあるgenerated_filesおよびartifacts配列とIDを照合してください。

プロジェクトが見つからない

Type: not_found_error

No project is found with the provided id.
No project found with provided id, or it has already been deleted.

原因: プロジェクトIDが存在しないか、削除されています。プロジェクトの詳細、添付ファイル、およびコラボレーターのエンドポイントは1つ目のボディを返し、DELETE /v1/compliance/apps/projects/{project_id}は2つ目のボディを返します。

修正方法: 最近のclaude_project_createdまたはclaude_project_deletedアクティビティと照合してください。Activity Feedは、プロジェクト自体がなくなった後もプロジェクトのライフサイクルイベントを公開し続けます。

プロジェクトドキュメントが見つからない

Type: not_found_error

No project document found with the provided id.
No project document found with the provided id, or it has already been deleted.

原因: プロジェクトドキュメントIDが存在しないか、削除されています。ドキュメントのコンテンツおよびメタデータのエンドポイントは1つ目のボディを返し、DELETE /v1/compliance/apps/projects/documents/{document_id}は2つ目のボディを返します。このエラーはテキストのプロジェクトドキュメント(claude_proj_doc_...)に適用され、プロジェクトファイルには適用されません。

修正方法: GET /v1/compliance/apps/projects/{project_id}/attachmentsを使用して現在の添付ファイルを一覧表示してください。ドキュメントが見つからない場合は削除されています。メタデータのみが必要な場合は、claude_project_document_uploadedアクティビティレコードから取得してください。アクティビティレコードには、誰が、いつ、どのプロジェクトにドキュメントをアップロードしたかが示されますが、ドキュメントの名前は含まれません。

ローカルセッションが見つからない

Type: not_found_error

Local session not found.

原因: GET /v1/compliance/apps/sessions/local/{session_id}またはGET /v1/compliance/apps/sessions/local/{session_id}/messagesに渡されたセッションIDが、Compliance APIを通じて読み取り可能なローカルセッションと一致しません。両エンドポイントは、IDがキーで読み取れる組織内のセッションでない場合(別の親組織に属するIDを含む)、セッションがもともと存在しなかった場合、セッションにゼロデータ保持が適用されている場合、またはセッションのすべてのアクティビティが、それを実行した組織に適用される保持期間を過ぎた場合に、原因を区別せずにこの1つのメッセージを返します。ローカルセッションにはプロビジョニング(pending)状態がないため、Local session not found.レスポンスに一時的な形はありません。pendingセッションが開始されるまで404を返すリモートセッションが見つからないと比較してください。正しい形式のclls_識別子でないセッションIDは、代わりに400 Bad Requestを返します。

ローカルセッションエンドポイント(一覧エンドポイントを含む)は、エンドポイント自体が親組織で利用できない間、別の404メッセージLocal sessions are not available.を返します。このレスポンスはセッションIDに依存しません。顧客側のキー、スコープ、設定のいずれを変更しても変わらず、一時的な場合があります。どちらのレスポンスもnot_found_errorタイプを持ち、メッセージテキストによって区別されます。

修正方法: GET /v1/compliance/apps/sessions/localとセッションIDを照合してください。ユーザーのマシン上のセッションを参照してください。セッションが一覧に表示されなくなった場合、そのコンテンツは保持期間を過ぎた(またはセッションがキーで読み取れる組織内にもはや存在しない)ため、トランスクリプトは取得できません。キューからIDを削除してください。一覧を含むすべての呼び出しがLocal sessions are not available.を返す場合は、キューに入れたセッションIDを保持し、次回のスケジュール実行でリトライしてください。レスポンスが続く場合は、Anthropicの担当者に連絡し、request-idレスポンスヘッダーを含めてください。

リモートセッションが見つからない

Type: not_found_error

Remote session not found.

原因: GET /v1/compliance/apps/sessions/remote/{session_id}/messagesに渡されたセッションIDが、Compliance APIを通じて読み取り可能なセッショントランスクリプトと一致しません。これは、セッションID(cse_...)が存在しないかセッションが削除された場合、セッションがキーで読み取れない組織に属している場合、またはセッションのstatusがまだpendingである場合に発生します。pendingセッションにはまだトランスクリプトがないため、セッションが開始されるまでmessagesエンドポイントは404を返します。正しい形式のcse_識別子でないセッションIDは、代わりに400 Bad Requestを返します。

修正方法: GET /v1/compliance/apps/sessions/remoteとセッションIDおよびそのstatusを照合してください。クラウド内のセッションを参照してください。セッションがpendingの場合は、そのステータスを抜けた後にリトライしてください。セッションが一覧に表示されなくなった場合は削除されており、トランスクリプトは取得できません。

組織、ロール、またはグループが見つからない

Type: not_found_error

The "ce86b5f3-7c16-48b3-a9f3-e1d2c4b8a0f1" organization does not exist or the requester is not authorized to access it.

組織、ロール、およびグループのエンドポイントは、標準のエラー形式で404 not_found_errorを返します。組織のメッセージにはorg_uuidが示されます。ロールとグループのメッセージは汎用的です(Role not found.、Group not found.)。これは、パスID(org_uuid、role_id、またはgroup_id)が存在しないか、呼び出し元のキーが読み取れるツリーにもはや属していない場合に発生します。

原因: パス内のIDが、Compliance APIを通じて読み取り可能なレコードと一致しません。ロールとグループは削除される可能性があり、組織は親ツリーからリンク解除される可能性があります。

修正方法: 対応する一覧エンドポイントとIDを照合し、Activity Feed内の最近の組織、ロール、またはグループのアクティビティと照合してください。

組織設定が利用できない

Type: not_found_error

organization `91012d09-e48b-438e-a489-1bebfd8fa6f9` not found in this organization's hierarchy

原因: GET /v1/compliance/organizations/{organization_id}/settingsは、組織が存在するかどうかをレスポンスが明かさないように、意図的に同じボディを共有する3つのケースでこの404を返します。organization_idが親のリンク済み組織の1つでない場合、値が有効なUUIDでない場合、またはsettingsエンドポイントが親組織でまだ有効になっていない場合です。

修正方法: 組織を一覧するとIDを照合してください。既知の正しい組織IDがそれでも404を返す場合、settingsエンドポイントは親組織でまだ有効になっていません。Anthropicの担当者にお問い合わせください。

409 Conflict

リクエストは正しい形式で認可されていますが、リソースの現在の状態と競合しています。ボディは400レスポンスでも使用されるinvalid_request_error typeを持つため、競合はerror.typeではなく409ステータスコードで区別してください。

プロジェクトにチャットが添付されている

Type: invalid_request_error

The "claude_proj_01KGp4eZNug9ri4kE35RSppq" project cannot be deleted as it has chats attached to it. Delete or detach all chats, and try deleting the project again.

原因: まだチャットが添付されているプロジェクトに対してDELETE /v1/compliance/apps/projects/{project_id}が呼び出されました。

修正方法: GET /v1/compliance/apps/chats?user_ids[]={user_id}&project_ids[]={project_id}でプロジェクトのチャットを一覧し(project_ids[]フィルターには少なくとも1つのuser_ids[]値が必要です。IDは組織ユーザーを一覧するを通じて列挙してください)、それぞれをDELETE /v1/compliance/apps/chats/{claude_chat_id}で削除してから、プロジェクトの削除をリトライしてください。

429 Too Many Requests

Compliance APIへのリクエストは、親組織ごとに1分あたり600リクエストに制限されています。この制限は、親の配下にあるすべてのキー(Compliance Access Keysおよびすべてのリンク済み組織のAdmin APIキー)とすべての/v1/compliance/*エンドポイントで共有される1つの予算です。リモートセッションエンドポイントには、その上に2つ目のリクエスト予算があります。親組織を持たないスタンドアロンのClaude Console組織の場合、同じ予算が組織自体に適用され、そのAdmin APIキー間で共有されます。インテグレーションでより高い制限が必要な場合は、Anthropicの担当者にお問い合わせください。

1つの429は異なります。非常に大きなセッションでは、ローカルセッションのmessagesエンドポイントが大きなトランスクリプトの読み取り中にサーバーがビジー状態のエラーを返す場合があります。これはレート制限ではなく、組織に対する制限でもありません。このセクションの最後にあるその項目で、識別方法と対処方法を説明しています。

APIキーが認証されると、Compliance APIのレスポンスは標準のレート制限レスポンスヘッダーを通じて共有予算を報告するため、クライアントは429を待つのではなく事前にスロットリングできます。

  • anthropic-ratelimit-requests-limitは1分あたりのリクエスト予算です。
  • anthropic-ratelimit-requests-remainingは現在のウィンドウに残っている予算です。
  • anthropic-ratelimit-requests-resetは、ウィンドウがリセットされ全予算が回復するRFC 3339タイムスタンプです。

429レスポンスには、次のリクエストを送信する前に待つべき秒数を示すretry-afterヘッダーも含まれます。この値にはanthropic-ratelimit-requests-resetを超える小さな安全マージンが含まれる場合があります。retry-afterに従ってください。

HTTP/1.1 429 Too Many Requests
date: Tue, 21 Apr 2026 14:38:02 GMT
retry-after: 25
anthropic-ratelimit-requests-limit: 600
anthropic-ratelimit-requests-remaining: 0
anthropic-ratelimit-requests-reset: 2026-04-21T14:38:25Z
{
  "error": {
    "type": "rate_limit_error",
    "message": "Compliance API rate limit of 600 requests per minute per parent organization has been exceeded. Retry after the time indicated by the retry-after header. Quote the request-id response header when contacting Anthropic support."
  }
}

原因: 親組織(またはスタンドアロンのClaude Console組織)が、予算を共有するすべてのキーを合わせて、1分間のウィンドウ内に/v1/compliance/*へ600を超えるリクエストを送信したか、リモートセッションエンドポイントの2つ目のリクエスト予算(このセクションの後半で説明)を使い切りました。

修正方法: retry-afterヘッダーの秒数だけ待ってからリトライしてください。ヘッダーがない場合(たとえば中継によって削除された場合)は、指数バックオフ(1秒から開始し、60秒まで倍増)にフォールバックしてください。429ではページネーションカーソルを進めないでください。失敗したリクエストはデータを返していないため、最後に成功したページのカーソルが依然として正しいものです。

認証に失敗したリクエスト(キーの欠落や未認識のキー、またはCompliance Access KeyやAdmin APIキーではなくClaude APIキー)は、レートリミッターの前で拒否され、クォータを消費しません。エンドポイントに必要なスコープを持たない有効なキーは、403が返される前にクォータを1単位消費します。

ローカルセッションエンドポイントは、共有制限に対してのみカウントされます。リモートセッションエンドポイントには、共有制限に加えて、共有制限と同様に親組織に紐づく2つ目のリクエスト予算も適用されます。その予算による429には、常に1であるretry-afterヘッダー(実際のリセット時刻ではなく最小待機時間)が含まれます。そのレスポンスのanthropic-ratelimit-*ヘッダーは、この予算ではなく共有制限を表すため、429が繰り返される場合は指数バックオフを行ってください。1つの429はどのリクエスト予算にも由来しません。それは大きなトランスクリプトの読み取り中にサーバーがビジー状態のエラーで、ローカルセッションのmessagesエンドポイントのみが返します。

Activity Feedをスケジュールでポーリングする場合は、合計リクエストレート(すべてのキー、リンク済み組織、同時実行ワーカーを合わせて)を共有制限未満に予算化してください。anthropic-ratelimit-requests-remainingを監視して、制限に達する前に速度を落としてください。ウィンドウポーリングとカーソル駆動の取り込みの選択については、コンプライアンスインテグレーションを設計するを参照してください。

大きなトランスクリプトの読み取り中にサーバーがビジー状態

Type: rate_limit_error

エラーコード: transcript_read_server_busy(error.details.error_codeで返されます)

Too many large session transcripts are being read at once. This is not a limit on your organization. Retry this request after the number of seconds in the retry-after header.

原因: GET /v1/compliance/apps/sessions/local/{session_id}/messagesは、非常に大きなセッションのページに対してこの429を返す場合があります。このエラーを返すのはこのエンドポイントのみで、どちらのorder値でも発生する可能性があります。これはレート制限ではなく、組織に対する制限でもありません。共有制限やその他のリクエスト予算を超過したことを意味するものではありません。このエラーは429ステータスコードとrate_limit_errorタイプをレート制限レスポンスと共有しているため、文言が変更される可能性のあるメッセージテキストではなく、エラーコードで識別してください。

修正方法: retry-afterヘッダーに示された秒数だけ待機してから、同じリクエストを変更せずに再送信してください。同じpage値を維持し、リクエストにpageがなかった場合は指定しないでください。リトライで再びこのエラーが返された場合は、同じ方法で待機してリトライしてください。retry-afterヘッダーが存在しない場合は、指数バックオフ(1秒から開始し、最大60秒まで倍増)にフォールバックしてください。このエラーが実行をまたいで繰り返し発生する場合は、request-idレスポンスヘッダーを添えてAnthropicの担当者にお問い合わせください。

500 Internal Server Error

Compliance APIからの500は、障害が決定論的な場合にx-should-retry: falseレスポンスヘッダーを含みます。Claude SDKはこのヘッダーに自動的に従います。すべての5xxでリトライする汎用HTTPリトライライブラリを使用している場合は、x-should-retryがfalseのときにリトライを抑制してください。このエラーをリトライしても、毎回同じように失敗します。

x-should-retry: falseヘッダーのない500は一時的なものです。指数バックオフ(1秒から開始し、60秒まで倍増)でリトライしてください。502、503、504、529レスポンスにも同じことが当てはまります。例外は、次に説明する少数のローカルセッションの503で、これらは負荷ではなく組織の設定や暗号化キーに依存します。プラットフォーム全体のリトライセマンティクスについては、エラーを参照してください。

ローカルセッションが一時的に利用できない

Type: overloaded_error

The local-sessions index is temporarily unavailable. Try again shortly.
Captured content is temporarily unavailable. Try again shortly.
The local-sessions index cannot currently evaluate retention overrides for this page. Try again later.

原因: ローカルセッションエンドポイントは、これらのボディのいずれかとともに503を返します。3つすべてがoverloaded_errorタイプを共有するため、これは条件を区別するためにerror.typeではなくメッセージテキストが必要となる、このページで数少ないエラーの1つです。

  • index is temporarily unavailableボディは、負荷またはバックエンドの状態により、セッション一覧が一時的に利用できないことを意味します。これは一時的なものです。
  • Captured contentボディは、セッションのトランスクリプトコンテンツを現在返せないことを意味します。これも通常は一時的なものです。「customer-managed encryption keys」(顧客管理の暗号化キー)を使用する組織では(顧客管理の暗号化キーを参照)、顧客管理キーで復号できないコンテンツを含むすべてのページに対して、messagesエンドポイントもこのボディを返します。たとえば、キーを無効化、取り消し、または破棄した場合や、キーに到達できない場合です。その場合、キーが使用できない間はエラーが継続します。メッセージテキストはどちらの場合も同じであるため、キーが原因であることを示す唯一の手がかりは、その組織でエラーが繰り返し発生し続けることです。使用できないキーがnot_capturedとして報告されることはありません。
  • retention overridesボディは、要求された範囲内の1つ以上のセッションに適用される保持設定またはデータ処理設定をまだ評価できなかったことを意味します。retrieveエンドポイントとmessagesエンドポイントでは、for this pageの代わりにfor this sessionと表示されます。これは負荷ではなく、セッションを実行した組織のデータと設定に依存し、長期間継続する可能性があります。

修正方法: 各ボディを次のように処理してください。

  • 2つのTry again shortly.ボディについては、指数バックオフでリトライし、失敗したリクエストはデータを返していないためpageカーソルを進めないでください。
  • 顧客管理キーを使用する組織のmessagesエンドポイントでCaptured contentボディが繰り返し発生し続ける場合は、永続的なものとして扱ってください。その組織のトランスクリプトのウォークを停止し、キー管理サービスでキーのステータスを確認してください。他のリンク済み組織のトランスクリプト、およびすべての場所のセッションメタデータは影響を受けません。後の実行でリトライする場合は、messagesのページカーソルはウォークの最初のページから24時間後に期限切れになるため、各セッションのウォークをpageなしで再開してください。
  • Try again later.ボディについては、解消を待ってウォークを開いたままにしないでください。一覧エンドポイントでは、pageパラメータなしで再開して後でリトライするか(24時間より古い一覧ページトークンは引き続き受け付けられますが、現在の保持境界に対して再評価されるため、保留したウォークはセッションをスキップする可能性があります)、リクエストが成功するまでcreated_atのウィンドウを狭め、スキップした範囲は後の実行で別途エクスポートしてください。取得エンドポイントとmessagesエンドポイントでは、そのセッションIDをスキップし、エクスポートの残りを続行し、後の実行でそのセッションをリトライしてください。messagesのページカーソルはウォークの最初のページから24時間後に期限切れになるため、そのセッションに戻る際はウォークをpageなしで再開してください。

これらの状況のいずれかが実行をまたいで繰り返し発生する場合は、request-idレスポンスヘッダーを添えてAnthropicの担当者にお問い合わせください。顧客管理キーの場合は、そのキーが使用可能な状態でエラーが継続する場合にのみお問い合わせください。

サービス全体のインシデントについては、status.anthropic.comを確認してください。

次のステップ

アクセス、スコープ、保持、インテグレーションに関するよくある質問。

プラットフォーム全体のエラーカタログとリトライセマンティクス。

Was this page helpful?