Compliance-API-Fehler behandeln
Jede Fehlermeldung der Compliance API mit Ursache und Behebung, geordnet nach HTTP-Statuscode.
Diese Seite listet die Antwortmeldungen auf, die jeder dokumentierte Endpunkt der Compliance API zurückgibt, sowie deren Ursache und Behebung.
Die Compliance API gibt Fehler im standardmäßigen Anthropic-Fehlerformat zurück: ein Statuscode außerhalb des 2xx-Bereichs, ein request-id-Antwort-Header und ein JSON-Body mit einem error-Objekt, das type und message enthält. Gib den Wert des request-id-Headers an, wenn du an den Support eskalierst.
{
"error": {
"type": "authentication_error",
"message": "The API key provided is invalid or has been revoked."
}
}Auf dieser Seite laufen lokale Sitzungen auf den Rechnern der Nutzer und Remote-Sitzungen in der Cloud; siehe Sitzungstranskripte abrufen.
Prüfe auf error.type, nicht auf den Meldungstext. Die Meldungen sind stabil genug, um sie in Runbooks zu übernehmen, können aber im Laufe der Zeit umformuliert werden; die Typwerte sind Teil des API-Vertrags. Die Endpunkte für lokale Sitzungen haben einige dokumentierte Ausnahmen, bei denen Antworten mit demselben Typ anhand ihrer Meldung unterschieden werden; jede davon wird an der entsprechenden Stelle hervorgehoben.
Die folgende Tabelle zeigt dir auf einen Blick, ob du einen erneuten Versuch unternehmen solltest. Jeder nachfolgende Abschnitt zeigt den wörtlichen Fehler-Body und die Behebung.
| Status | Erneut versuchen? | Wann |
|---|---|---|
| 400 Bad Request | Nein | Korrigiere die Anfrage und sende sie erneut. |
| 401 Unauthorized | Nein | Korrigiere oder rotiere den Key und sende dann erneut. |
| 403 Forbidden | Nein | Füge den fehlenden Scope hinzu oder verwende den richtigen Key-Typ und sende dann erneut. |
| 404 Not Found | In der Regel nein | Die Ressource wurde gelöscht oder hat nie existiert; entferne sie aus deiner Warteschlange. Ausnahmen: Bei den Endpunkten für lokale Sitzungen bedeutet die Meldung Local sessions are not available. (die bei jedem Aufruf zurückgegeben wird, einschließlich der Liste), dass die Endpunkte für deine übergeordnete Organisation derzeit nicht verfügbar sind, nicht dass eine Sitzung verschwunden ist; behalte deine eingereihten IDs und siehe Lokale Sitzung nicht gefunden. Eine Remote-Sitzung, die sich noch im Status pending befindet, gibt auf ihrem Messages-Endpunkt 404 zurück, bis sie startet; siehe Remote-Sitzung nicht gefunden. |
| 409 Conflict | Nein | Die Anfrage steht im Konflikt mit dem aktuellen Zustand der Ressource; löse den Konflikt (etwa durch Abtrennen untergeordneter Ressourcen) und versuche es dann erneut. |
| 429 Too Many Requests | Ja, nach retry-after | Warte die in retry-after angegebenen Sekunden und versuche es dann erneut; setze deinen Cursor nicht weiter. |
| 500 Internal Server Error | Hängt von x-should-retry ab | Prüfe den Antwort-Header x-should-retry, bevor du es erneut versuchst. |
| 502, 503, 504, 529 | Ja, mit Backoff | Vorübergehend; versuche es mit exponentiellem Backoff erneut. Ausnahme: Einige 503-Antworten bei lokalen Sitzungen sind nicht vorübergehend. Siehe Lokale Sitzungen vorübergehend nicht verfügbar. |
400 Bad Request
Die Anfrage war syntaktisch gültig, enthielt aber einen Parameter, den der Server abgelehnt hat. Korrigiere den Parameter und versuche es erneut.
Ungültiges Zeitstempelformat
Typ: invalid_request_error
The `created_at.gte` parameter contains an invalid timestamp format. Timestamps must be provided in RFC 3339 format e.g., "2024-03-01T00:00:00Z". Got "2024-01-01".Ursache: Ein created_at.*- oder updated_at.*-Wert (.gte, .gt, .lte, .lt) konnte nicht als Datum/Uhrzeit geparst werden. Die Meldung nennt den fehlgeschlagenen Parameter und gibt den gesendeten Wert wieder.
Behebung: Sende einen vollständigen RFC-3339-Zeitstempel einschließlich Uhrzeit und Zeitzone, zum Beispiel 2024-03-01T00:00:00Z oder 2024-03-01T00:00:00+00:00.
Die Liste der lokalen Sitzungen (GET /v1/compliance/apps/sessions/local) gibt ebenfalls einen 400 invalid_request_error zurück, wenn beide Zeitgrenzen angegeben sind und created_at.lt nicht strikt nach created_at.gte liegt. Der Body lautet:
created_at.lt must be strictly after created_at.gte.Sende ein created_at.lt, das später als created_at.gte liegt, oder lass eine der Grenzen weg.
Ungültiges Limit
Typ: invalid_request_error
The limit parameter must be between 1 and 1000, inclusive. Got 1500.Ursache: Der Query-Parameter limit lag außerhalb des akzeptierten Bereichs. Die in der Meldung genannte Grenze spiegelt das Maximum für den konkret aufgerufenen Endpunkt wider.
Behebung: Sende ein limit innerhalb des Bereichs, den der Endpunkt akzeptiert. Jeder List-Endpunkt hat seinen eigenen limit-Bereich; siehe die Parameterbeschränkungen auf der entsprechenden Seite der Compliance-API-Referenz.
Die Endpunkte für Sitzungstranskripte (GET /v1/compliance/apps/sessions/local/{session_id}/messages und GET /v1/compliance/apps/sessions/remote/{session_id}/messages) validieren ihre Kürzungsparameter auf dieselbe Weise: tool_use_input_max_bytes und tool_result_max_bytes akzeptieren jeweils eine positive Byte-Anzahl oder -1 (das Server-Maximum), sodass ein Wert wie 0 denselben 400 invalid_request_error zurückgibt.
Ungültige Paginierungs-ID
Typ: invalid_request_error
Invalid `after_id`. No activity found for `after_id` "activity_invalid123"Ursache: Der Cursor after_id oder before_id konnte weder als opaker Cursor dekodiert noch als Aktivitäts-ID geparst werden.
Behebung: Behandle Paginierungs-Cursor als opake Zeichenketten. Kopiere immer den Wert first_id oder last_id, den die vorherige Seite zurückgegeben hat; höre auf, wenn has_more false ist. Konstruiere keine Cursor aus Objekt-IDs.
Die Verzeichnis-, Projekt- und Sitzungsendpunkte (Organisationen, Nutzer, Rollen, Rollenberechtigungen, Gruppen, Gruppenmitglieder, Projekte, Projektanhänge, lokale und Remote-Sitzungen sowie Sitzungsnachrichten) paginieren mit einem opaken page-Token statt mit after_id und before_id. Derselbe Rat gilt: Übergib den next_page-Wert aus der vorherigen Antwort unverändert und höre auf, wenn has_more false ist (oder bei den Sitzungsendpunkten, die kein has_more zurückgeben, wenn next_page null ist). Ein fehlerhaftes page-Token gibt denselben 400 invalid_request_error zurück wie ein fehlerhaftes after_id oder before_id.
Die beiden paginierten Endpunkte für lokale Sitzungen (die Liste und der Messages-Endpunkt) geben den folgenden 400 invalid_request_error für jeden page-Wert zurück, den sie nicht dekodieren können, zum Beispiel ein Token, das nach dem Speichern gekürzt oder verändert wurde, oder eines, das von einem anderen Endpunkt oder unter einer anderen übergeordneten Organisation ausgegeben wurde. Beim Messages-Endpunkt für lokale Sitzungen (GET /v1/compliance/apps/sessions/local/{session_id}/messages) ist jeder page-Cursor außerdem an die Sitzung und die order gebunden, für die er ausgegeben wurde, sodass ein Cursor, der für eine andere Sitzung oder Sortierreihenfolge ausgegeben wurde, denselben Body zurückgibt:
The page parameter is not a valid cursor for this request.Cursor auf dem Messages-Endpunkt laufen außerdem 24 Stunden nach Beginn des Durchlaufs (ein Durchgang durch die Seiten) ab. Ein abgelaufener Cursor gibt zurück:
The page cursor has expired. Restart the walk without a page parameter; results will reflect the current retention boundary.Beim ersten Body sende den unveränderten next_page-Wert aus der vorherigen Antwort erneut an den Endpunkt und die Sitzung, die ihn ausgegeben haben. Bei einem abgelaufenen Cursor starte ohne page-Parameter neu; der neue Durchlauf spiegelt die zu seinem Beginn geltende Aufbewahrungsgrenze wider, sodass Nachrichten, die in der Zwischenzeit aus dem Aufbewahrungszeitraum herausgealtert sind, nicht mehr zurückgegeben werden (siehe Ein Transkript einer lokalen Sitzung abrufen).
401 Unauthorized
Der x-api-key-Header fehlte oder stimmte mit keinem bekannten Key überein. Ein gültiger Key mit den falschen Scopes gibt stattdessen 403 Forbidden zurück.
Ungültiger API-Key
Typ: authentication_error
The API key provided is invalid or has been revoked.Ursache: Der Key in x-api-key existiert nicht, wurde gelöscht oder wurde deaktiviert. Ein fehlender oder leerer x-api-key-Header gibt denselben Body zurück, prüfe also sowohl deinen Secret-Store als auch den Widerrufsstatus des Keys.
Behebung: Bestätige den Key-Wert, prüfe, dass er nicht in claude.ai (Compliance Access Keys) oder in der Claude Console (Admin-API-Keys) gelöscht wurde, und bestätige, dass er aktiviert ist. Siehe Die Compliance API einrichten.
403 Forbidden
Der Key in x-api-key ist gültig, trägt aber nicht den „scope“ (Berechtigungsbereich), den der Endpunkt erfordert. Die wörtliche Meldung listet die Scopes auf, die der Key trägt (Got:), und die Scopes, die der Endpunkt erfordert (Needed:), sodass du bestätigen kannst, was der Key trägt, ohne erneut in der Claude Console oder in claude.ai nachzusehen. Die Scopes eines Compliance Access Key sind nach der Erstellung unveränderlich, daher weist dich jede Behebung für unzureichende Scopes an, einen neuen Key zu erstellen, statt den bestehenden zu bearbeiten. Eine eigenständige Claude-Console-Organisation (eine ohne übergeordnete Organisation) kann keinen Compliance Access Key erstellen, daher gelten Behebungen, die einen solchen erfordern, für sie nicht; sie kann nur den Activity Feed abfragen.
Unzureichender Scope: Activity Feed
Typ: permission_error
Missing required scopes. Got: ['read:compliance_user_data'] Needed: ['read:compliance_activities']Ursache: Ein Key ohne read:compliance_activities wurde verwendet, um GET /v1/compliance/activities aufzurufen. Es gibt zwei häufige Wege zu diesem Fehler:
- Ein Compliance Access Key (
sk-ant-api01-...) wurde ohne den Scoperead:compliance_activitieserstellt. - Ein Admin-API-Key der Claude Console (
sk-ant-admin01-...) wurde erstellt, während die Compliance API für die Organisation nicht aktiviert war. Keys, die erstellt wurden, während die Compliance API nicht aktiviert war, tragen den Scope nicht; siehe Die Compliance API einrichten.
Behebung: Die Scopes eines Compliance Access Key sind nach der Erstellung unveränderlich. Erstelle einen neuen Key, der read:compliance_activities enthält, oder verwende einen Admin-API-Key der Claude Console. Siehe Welchen Key brauchst du? für die Bedingungen, unter denen ein Admin-API-Key diesen Scope trägt.
Unzureichender Scope: Organisationsdaten
Typ: permission_error
Missing required scopes. Got: ['read:compliance_user_data'] Needed: ['read:compliance_org_data']Ursache: Ein Key ohne read:compliance_org_data wurde verwendet, um einen Endpunkt für Organisationen, Rollen, Gruppen oder effektive Einstellungen aufzurufen. Es gibt zwei häufige Wege zu diesem Fehler:
- Ein Compliance Access Key (
sk-ant-api01-...) wurde ohne den Scoperead:compliance_org_dataerstellt. - Ein Admin-API-Key der Claude Console (
sk-ant-admin01-...) wurde verwendet. Admin-API-Keys tragen nurread:compliance_activitiesund können keine Organisationsmetadaten lesen.
Behebung: Erstelle einen neuen Compliance Access Key mit ausgewähltem read:compliance_org_data. Admin-API-Keys können keine Organisationsmetadaten lesen; der Compliance Access Key ist erforderlich.
Eingestellter Scope: Organisationseinstellungen
Typ: permission_error
Missing required scopes. Got: ['read:compliance_org_settings'] Needed: ['read:compliance_org_data']Ursache: Der Scope read:compliance_org_settings wurde am 30. Juni 2026 eingestellt. GET /v1/compliance/organizations/{organization_id}/settings erfordert jetzt read:compliance_org_data, denselben Scope wie die anderen Organisationsendpunkte, und der eingestellte Scope autorisiert nichts mehr. Ein Compliance Access Key, der nur read:compliance_org_settings trägt, gibt diesen Fehler bei jedem Aufruf des Settings-Endpunkts zurück, obwohl der Key vor der Einstellung funktioniert hat. Der eingestellte Scope kann beim Erstellen eines Keys nicht mehr ausgewählt oder gewährt werden.
Behebung: Die Scopes eines Compliance Access Key sind nach der Erstellung unveränderlich. Erstelle einen neuen Compliance Access Key mit ausgewähltem read:compliance_org_data, aktualisiere deine Integration, damit sie ihn verwendet, und lösche dann den alten Key. Ein Key, der bereits read:compliance_org_data trägt, ist von der Einstellung nicht betroffen.
Unzureichender Scope: Nutzerdaten
Typ: permission_error
Missing required scopes. Got: ['read:compliance_activities'] Needed: ['read:compliance_user_data']Ursache: Ein Key ohne read:compliance_user_data wurde verwendet, um einen Endpunkt für Chats, Nachrichten, Dateien, Projekte, Sitzungen, Organisationsnutzer oder Gruppenmitglieder aufzurufen. Es gibt zwei häufige Wege zu diesem Fehler:
- Ein Compliance Access Key (
sk-ant-api01-...) wurde ohne den Scoperead:compliance_user_dataerstellt. - Ein Admin-API-Key der Claude Console (
sk-ant-admin01-...) wurde verwendet. Admin-API-Keys tragen nurread:compliance_activitiesund könnenread:compliance_user_datanicht erhalten, daher können sie die Endpunkte für Chats, Dateien, Projekte, Projektanhänge, Sitzungen, Nutzer oder Gruppenmitglieder nicht aufrufen.
Behebung: Verwende einen Compliance Access Key, der in claude.ai mit ausgewähltem read:compliance_user_data erstellt wurde. Wenn die Anfrage tatsächlich nur den Activity Feed betreffen soll, richte den Admin-API-Key stattdessen auf GET /v1/compliance/activities.
Unzureichender Scope: Löschen
Typ: permission_error
Missing required scopes. Got: ['read:compliance_user_data'] Needed: ['delete:compliance_user_data']Ursache: Ein Compliance Access Key ohne delete:compliance_user_data wurde verwendet, um einen DELETE-Endpunkt für Chats, Dateien oder Projekte aufzurufen.
Behebung: Erstelle einen neuen Compliance Access Key mit ausgewähltem delete:compliance_user_data. Der Delete-Scope ist von read:compliance_user_data getrennt, damit reine Lese-Audit-Keys keine Inhalte löschen können.
404 Not Found
Der Endpunkt wurde aufgelöst, aber die Ressourcen-ID existiert nicht oder wurde bereits gelöscht. Löschungen über die Compliance API sind sofort und dauerhaft, daher bedeutet ein 404 bei einer zuvor bekannten ID in der Regel, dass der Inhalt durch einen Delete-Aufruf der Compliance API hart gelöscht oder durch eine Aufbewahrungsrichtlinie entfernt wurde. Die Sitzungsendpunkte fügen zwei Fälle hinzu. Bei den Endpunkten für lokale Sitzungen wird eine separate 404-Meldung, Local sessions are not available., bei jedem Aufruf (einschließlich der Liste) zurückgegeben, solange die Endpunkte für deine übergeordnete Organisation nicht verfügbar sind; sie hängt nicht von der Sitzungs-ID ab und kann vorübergehend sein. Siehe Lokale Sitzung nicht gefunden. Bei den Endpunkten für Remote-Sitzungen hat eine Sitzung, die noch bereitgestellt wird (status gleich pending), noch kein Transkript, sodass ihr Messages-Endpunkt 404 zurückgibt, bis die Sitzung startet. Siehe Remote-Sitzung nicht gefunden. Die in jeder Behebung genannten Aktivitätstyp-Zeichenketten (zum Beispiel claude_chat_created) sind Werte, die du an den activity_types[]-Filter des Activity Feed übergeben kannst; siehe Compliance-Aktivitäten abfragen für alle unterstützten Werte.
Chat nicht gefunden
Typ: not_found_error
Chat claude_chat_01H5CWunD7RpVJ5bHa8RCkja not found.Ursache: Die Chat-ID im Pfad stimmt mit keinem Chat überein, der über die Compliance API lesbar ist. Der Chat wurde möglicherweise durch einen früheren Aufruf der Compliance API hart gelöscht oder durch die Aufbewahrungsrichtlinie deiner Organisation entfernt, oder er gehört zu einer Organisation, die der aufrufende Key nicht lesen kann. Chats, die ein Nutzer in claude.ai gelöscht hat, geben kein 404 zurück; sie bleiben lesbar, mit gesetztem deleted_at, aber ohne ihren Nachrichteninhalt.
Behebung: Bestätige die Chat-ID anhand einer aktuellen claude_chat_created- oder claude_chat_viewed-Aktivität. Wenn die Aktivität aktuell ist und das Lesen trotzdem fehlschlägt, wurde der Chat hart gelöscht (über diese API oder durch Ablauf der Aufbewahrungsrichtlinie) oder gehört zu einer Organisation außerhalb des Scopes deines Keys.
Datei nicht gefunden
Typ: not_found_error
No file found with provided id, or it has already been deleted.Ursache: Die Datei-ID existiert nicht oder wurde gelöscht. Dieser Fehler gilt sowohl für an Chats angehängte Dateien (claude_file_...) als auch für Projektdateien.
Behebung: Gleiche mit aktuellen claude_file_uploaded- oder claude_file_deleted-Aktivitäten ab. Wenn die Datei gelöscht wurde, ist die Binärdatei weg; der Aktivitätsdatensatz bleibt für das 6-jährige Aufbewahrungsfenster im Feed.
Projekt nicht gefunden
Typ: not_found_error
No project is found with the provided id.Ursache: Die Projekt-ID existiert nicht oder wurde gelöscht.
Behebung: Gleiche mit aktuellen claude_project_created- oder claude_project_deleted-Aktivitäten ab. Der Activity Feed stellt die Lebenszyklusereignisse des Projekts weiterhin bereit, auch nachdem das Projekt selbst verschwunden ist.
Projektdokument nicht gefunden
Typ: not_found_error
No project document found with provided id, or it has already been deleted.Ursache: Die Projektdokument-ID existiert nicht oder wurde gelöscht. Dieser Fehler gilt für Text-Projektdokumente (claude_proj_doc_...), nicht für Projektdateien.
Behebung: Verwende GET /v1/compliance/apps/projects/{project_id}/attachments, um die aktuellen Anhänge aufzulisten. Wenn das Dokument fehlt, wurde es gelöscht; rufe es über einen claude_project_document_uploaded-Aktivitätsdatensatz ab, wenn du nur die Metadaten benötigst.
Lokale Sitzung nicht gefunden
Typ: not_found_error
Local session not found.Ursache: Die an GET /v1/compliance/apps/sessions/local/{session_id} oder GET /v1/compliance/apps/sessions/local/{session_id}/messages übergebene Sitzungs-ID stimmt mit keiner lokalen Sitzung überein, die über die Compliance API lesbar ist. Beide Endpunkte geben diese eine Meldung zurück, ohne die Ursache zu unterscheiden, wenn die ID keine Sitzung in einer Organisation ist, die dein Key lesen kann (einschließlich IDs, die zu einer anderen übergeordneten Organisation gehören), wenn die Sitzung nie existiert hat, wenn für die Sitzung Zero Data Retention gilt oder wenn die gesamte Aktivität der Sitzung über den Aufbewahrungszeitraum hinaus gealtert ist, der für die Organisation gilt, die sie ausgeführt hat. Die Antwort Local session not found. hat keine vorübergehende Form, da lokale Sitzungen keinen Bereitstellungszustand (pending) haben; vergleiche Remote-Sitzung nicht gefunden, wo eine pending-Sitzung 404 zurückgibt, bis sie startet. Eine Sitzungs-ID, die kein wohlgeformter clls_-Bezeichner ist, gibt stattdessen 400 Bad Request zurück.
Die Endpunkte für lokale Sitzungen, einschließlich des List-Endpunkts, geben eine andere 404-Meldung zurück, Local sessions are not available., solange die Endpunkte selbst für deine übergeordnete Organisation nicht verfügbar sind. Diese Antwort hängt nicht von der Sitzungs-ID ab; kein kundenseitiger Key, Scope oder keine Einstellung ändert sie, und sie kann vorübergehend sein. Beide Antworten tragen den Typ not_found_error; der Meldungstext ist das, was sie unterscheidet.
Behebung: Bestätige die Sitzungs-ID anhand von GET /v1/compliance/apps/sessions/local; siehe Sitzungen auf den Rechnern der Nutzer. Wenn die Sitzung nicht mehr in der Liste erscheint, ist ihr Inhalt über die Aufbewahrung hinaus gealtert (oder die Sitzung befindet sich anderweitig nicht mehr in einer Organisation, die dein Key lesen kann) und ihr Transkript ist nicht abrufbar; entferne die ID aus deiner Warteschlange. Wenn jeder Aufruf, einschließlich der Liste, Local sessions are not available. zurückgibt, behalte deine eingereihten Sitzungs-IDs und versuche es bei deinem nächsten geplanten Lauf erneut; wenn die Antwort bestehen bleibt, kontaktiere deinen Anthropic-Ansprechpartner und gib den request-id-Antwort-Header an.
Remote-Sitzung nicht gefunden
Typ: not_found_error
Remote session not found.Ursache: Die an GET /v1/compliance/apps/sessions/remote/{session_id}/messages übergebene Sitzungs-ID stimmt mit keinem Sitzungstranskript überein, das über die Compliance API lesbar ist. Dies tritt auf, wenn die Sitzungs-ID (cse_...) nicht existiert oder die Sitzung gelöscht wurde, wenn die Sitzung zu einer Organisation gehört, die dein Key nicht lesen kann, oder wenn der status der Sitzung noch pending ist: Eine ausstehende Sitzung hat noch kein Transkript, sodass der Messages-Endpunkt 404 zurückgibt, bis die Sitzung startet. Eine Sitzungs-ID, die kein wohlgeformter cse_-Bezeichner ist, gibt stattdessen 400 Bad Request zurück.
Behebung: Bestätige die Sitzungs-ID und ihren status anhand von GET /v1/compliance/apps/sessions/remote; siehe Sitzungen in der Cloud. Wenn die Sitzung pending ist, versuche es erneut, nachdem sie diesen Status verlassen hat. Wenn die Sitzung nicht mehr in der Liste erscheint, wurde sie gelöscht und ihr Transkript ist nicht abrufbar.
Organisation, Rolle oder Gruppe nicht gefunden
Typ: not_found_error
The "ce86b5f3-7c16-48b3-a9f3-e1d2c4b8a0f1" organization does not exist or the requester is not authorized to access it.Die Organisations-, Rollen- und Gruppenendpunkte geben einen 404 not_found_error im Standard-Fehlerformat zurück. Die Organisationsmeldung nennt die org_uuid; die Rollen- und Gruppenmeldungen sind generisch (Role not found., Group not found.). Dies tritt auf, wenn eine Pfad-ID (org_uuid, role_id oder group_id) nicht existiert oder nicht mehr zu einem Baum gehört, den der aufrufende Key lesen kann.
Ursache: Die ID im Pfad stimmt mit keinem Datensatz überein, der über die Compliance API lesbar ist. Rollen und Gruppen können gelöscht werden, und Organisationen können vom übergeordneten Baum getrennt werden.
Behebung: Überprüfe die ID anhand des entsprechenden List-Endpunkts und gleiche mit aktuellen Organisations-, Rollen- oder Gruppenaktivitäten im Activity Feed ab.
Organisationseinstellungen nicht verfügbar
Typ: not_found_error
organization `91012d09-e48b-438e-a489-1bebfd8fa6f9` not found in this organization's hierarchyUrsache: GET /v1/compliance/organizations/{organization_id}/settings gibt dieses 404 in drei Fällen zurück, die absichtlich denselben Body teilen, damit die Antwort nicht verrät, ob eine Organisation existiert: Die organization_id ist keine der verknüpften Organisationen deiner übergeordneten Organisation, der Wert ist keine gültige UUID, oder der Settings-Endpunkt ist für deine übergeordnete Organisation noch nicht aktiviert.
Behebung: Überprüfe die ID anhand von Organisationen auflisten. Wenn eine bekanntermaßen gültige Organisations-ID weiterhin 404 zurückgibt, ist der Settings-Endpunkt für deine übergeordnete Organisation noch nicht aktiviert; kontaktiere deinen Anthropic-Ansprechpartner.
409 Conflict
Die Anfrage ist wohlgeformt und autorisiert, steht aber im Konflikt mit dem aktuellen Zustand der Ressource.
Projekt hat angehängte Chats
Typ: conflict_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.Ursache: DELETE /v1/compliance/apps/projects/{project_id} wurde für ein Projekt aufgerufen, an das noch Chats angehängt sind.
Behebung: Liste die Chats des Projekts mit GET /v1/compliance/apps/chats?user_ids[]={user_id}&project_ids[]={project_id} auf (der project_ids[]-Filter erfordert mindestens einen user_ids[]-Wert; zähle IDs über Organisationsnutzer auflisten auf), lösche jeden einzelnen mit DELETE /v1/compliance/apps/chats/{claude_chat_id} und versuche dann das Löschen des Projekts erneut.
429 Too Many Requests
Anfragen an die Compliance API sind auf 600 Anfragen pro Minute pro übergeordneter Organisation begrenzt. Das Limit ist ein Budget, das über alle Keys unter der übergeordneten Organisation (Compliance Access Keys und die Admin-API-Keys aller verknüpften Organisationen) und über alle /v1/compliance/*-Endpunkte hinweg geteilt wird; die Endpunkte für Remote-Sitzungen tragen zusätzlich ein zweites Anfragebudget. Für eine eigenständige Claude-Console-Organisation, die keine übergeordnete Organisation hat, gilt dasselbe Budget für die Organisation selbst und wird über ihre Admin-API-Keys hinweg geteilt. Kontaktiere deinen Anthropic-Ansprechpartner, wenn deine Integration ein höheres Limit benötigt.
Sobald sich dein API-Key authentifiziert, melden die Antworten der Compliance API das geteilte Budget über die standardmäßigen Ratenlimit-Antwort-Header, sodass dein Client proaktiv drosseln kann, statt auf ein 429 zu warten:
anthropic-ratelimit-requests-limitist das Anfragebudget pro Minute.anthropic-ratelimit-requests-remainingist das im aktuellen Fenster verbleibende Budget.anthropic-ratelimit-requests-resetist der RFC-3339-Zeitstempel, zu dem das Fenster zurückgesetzt und das volle Budget wiederhergestellt wird.
Eine 429-Antwort trägt außerdem einen retry-after-Header mit der Anzahl der Sekunden, die vor dem Senden der nächsten Anfrage zu warten sind. Dieser Wert kann eine kleine Sicherheitsmarge über anthropic-ratelimit-requests-reset hinaus enthalten; halte dich an 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."
}
}Ursache: Deine übergeordnete Organisation (oder eigenständige Claude-Console-Organisation) hat in einem 1-Minuten-Fenster mehr als 600 Anfragen an /v1/compliance/* gesendet, über alle Keys hinweg, die ihr Budget teilen, oder sie hat das zweite Anfragebudget der Endpunkte für Remote-Sitzungen erschöpft (weiter unten in diesem Abschnitt beschrieben).
Behebung: Warte die Anzahl der Sekunden im retry-after-Header und versuche es dann erneut. Wenn der Header fehlt (zum Beispiel von einem Vermittler entfernt), weiche auf exponentielles Backoff aus (beginne bei 1 Sekunde, verdopple bis zu 60 Sekunden). Setze deinen Paginierungs-Cursor bei einem 429 nicht weiter: Die fehlgeschlagene Anfrage hat keine Daten zurückgegeben, daher ist der Cursor der letzten erfolgreichen Seite weiterhin korrekt.
Anfragen, deren Authentifizierung fehlschlägt (ein fehlender oder nicht erkannter Key oder ein Claude-API-Key statt eines Compliance Access Key oder Admin-API-Keys), werden vor dem Ratenlimiter abgelehnt und verbrauchen kein Kontingent. Ein gültiger Key, dem der erforderliche Scope des Endpunkts fehlt, verbraucht eine Kontingenteinheit, bevor das 403 zurückgegeben wird.
Die Endpunkte für lokale Sitzungen zählen nur gegen das geteilte Limit. Die Endpunkte für Remote-Sitzungen tragen zusätzlich ein zweites Anfragebudget, das wie das geteilte Limit an deine übergeordnete Organisation gebunden ist. Ein 429 aus diesem Budget trägt einen retry-after-Header, der immer 1 ist (eine Mindestwartezeit, nicht die tatsächliche Rücksetzzeit); etwaige anthropic-ratelimit-*-Header in dieser Antwort beschreiben das geteilte Limit und nicht dieses Budget, weiche also exponentiell zurück, wenn sich das 429 wiederholt.
Wenn du den Activity Feed nach Zeitplan abfragst, plane deine aggregierte Anfragerate (über alle Keys, verknüpften Organisationen und gleichzeitigen Worker hinweg) unterhalb des geteilten Limits ein. Beobachte anthropic-ratelimit-requests-remaining, um langsamer zu werden, bevor du es erreichst. Siehe Deine Compliance-Integration entwerfen für die Wahl zwischen Fenster-Polling und Cursor-gesteuerter Aufnahme.
500 Internal Server Error
Ein 500 von der Compliance API trägt einen x-should-retry: false-Antwort-Header, wenn der Fehler deterministisch ist. Anthropic-SDKs beachten diesen Header automatisch. Wenn du eine generische HTTP-Retry-Bibliothek verwendest, die bei jedem 5xx erneut versucht, unterdrücke erneute Versuche, wenn x-should-retry false ist; ein erneuter Versuch dieses Fehlers schlägt bei jedem Versuch identisch fehl.
Ein 500 ohne den x-should-retry: false-Header ist vorübergehend: Versuche es mit exponentiellem Backoff erneut (beginne bei 1 Sekunde, verdopple bis zu 60 Sekunden). Dasselbe gilt für 502-, 503-, 504- und 529-Antworten. Die Ausnahme ist eine kleine Gruppe von 503-Antworten bei lokalen Sitzungen, die als Nächstes beschrieben werden und von den Einstellungen oder dem Verschlüsselungsschlüssel einer Organisation statt von der Last abhängen. Siehe Fehler für die plattformweite Retry-Semantik.
Lokale Sitzungen vorübergehend nicht verfügbar
Typ: 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.Ursache: Die Endpunkte für lokale Sitzungen geben 503 mit einem dieser Bodys zurück. Alle drei teilen den Typ overloaded_error, daher ist dies einer der wenigen Fehler auf dieser Seite, bei denen du den Meldungstext und nicht error.type benötigst, um die Bedingungen zu unterscheiden:
- Der Body
index is temporarily unavailablebedeutet, dass Sitzungslisten aufgrund von Last oder einer Back-End-Bedingung kurzzeitig nicht verfügbar sind. Dies ist vorübergehend. - Der Body
Captured contentbedeutet, dass der Transkriptinhalt einer Sitzung gerade nicht zurückgegeben werden kann. Dies ist in der Regel ebenfalls vorübergehend. In Organisationen, die kundenverwaltete Verschlüsselungsschlüssel verwenden, gibt der Messages-Endpunkt diesen Body außerdem für jede Seite zurück, die Inhalte enthält, die dein Schlüssel nicht entschlüsseln kann, zum Beispiel weil du den Schlüssel deaktiviert, widerrufen oder zerstört hast oder weil der Schlüssel nicht erreichbar ist. In diesem Fall bleibt der Fehler bestehen, solange der Schlüssel nicht verwendet werden kann. Der Meldungstext ist in beiden Fällen derselbe, daher ist das einzige Signal dafür, dass der Schlüssel die Ursache ist, dass der Fehler für diese Organisation immer wieder auftritt. Ein unbrauchbarer Schlüssel wird nie alsnot_capturedgemeldet. - Der Body
retention overridesbedeutet, dass eine Aufbewahrungs- oder Datenverarbeitungseinstellung, die für eine oder mehrere Sitzungen im angeforderten Bereich gilt, noch nicht ausgewertet werden konnte. Bei den Retrieve- und Messages-Endpunkten lautet erfor this sessionstattfor this page. Er hängt von den Daten und Einstellungen der Organisation ab, die die Sitzung ausgeführt hat, und nicht von der Last, und er kann über einen längeren Zeitraum bestehen bleiben.
Behebung: Behandle jeden Body wie folgt:
- Bei den beiden
Try again shortly.-Bodys versuche es mit exponentiellem Backoff erneut und setze deinenpage-Cursor nicht weiter, da die fehlgeschlagene Anfrage keine Daten zurückgegeben hat. - Wenn der Body
Captured contentauf dem Messages-Endpunkt für eine Organisation, die einen kundenverwalteten Schlüssel verwendet, immer wieder auftritt, behandle ihn als dauerhaft: Beende den Durchlauf der Transkripte dieser Organisation und prüfe den Status des Schlüssels in deinem Schlüsselverwaltungsdienst. Transkripte in anderen verknüpften Organisationen und Sitzungsmetadaten überall sind nicht betroffen. Wenn du es bei einem späteren Lauf erneut versuchst, starte den Durchlauf jeder Sitzung ohnepageneu, da Page-Cursor für Nachrichten 24 Stunden nach der ersten Seite des Durchlaufs ablaufen. - Beim Body
Try again later.halte keinen Durchlauf offen, während du darauf wartest, dass er verschwindet. Beim List-Endpunkt versuche es entweder später erneut, indem du ohne denpage-Parameter neu startest (ein List-Page-Token, das älter als 24 Stunden ist, wird weiterhin akzeptiert, aber gegen die aktuelle Aufbewahrungsgrenze neu ausgewertet, sodass ein geparkter Durchlauf Sitzungen überspringen kann), oder verenge das Fenster auscreated_at.gteundcreated_at.lt, bis die Anfrage erfolgreich ist, und exportiere den übersprungenen Bereich bei einem späteren Lauf separat. Bei den Retrieve- und Messages-Endpunkten überspringe diese Sitzungs-ID, fahre mit dem Rest deines Exports fort und versuche die Sitzung bei einem späteren Lauf erneut. Page-Cursor für Nachrichten laufen 24 Stunden nach der ersten Seite des Durchlaufs ab, starte also den Durchlauf dieser Sitzung ohnepageneu, wenn du zu ihr zurückkehrst.
Wenn eine dieser Bedingungen über mehrere Läufe hinweg wiederkehrt, kontaktiere deinen Anthropic-Ansprechpartner und gib den request-id-Antwort-Header an. Im Fall des kundenverwalteten Schlüssels tu dies nur, wenn der Fehler anhält, während dein Schlüssel verwendbar ist.
Bei dienstweiten Vorfällen prüfe status.anthropic.com.
Nächste Schritte
Häufige Fragen zu Zugriff, Scopes, Aufbewahrung und Integration.
Der plattformweite Fehlerkatalog und die Retry-Semantik.
Was this page helpful?