Claude Platform Docs
AdministraciónAPI de cumplimiento

Manejar errores de la Compliance API

Todos los mensajes de error de la Compliance API con su causa y solución, organizados por código de estado HTTP.

Esta página enumera los mensajes de respuesta que devuelve cada endpoint documentado de la Compliance API, la causa y la solución.

La Compliance API devuelve errores en el formato de error estándar de Anthropic: un código de estado distinto de 2xx, un encabezado de respuesta request-id y un cuerpo JSON con un objeto error que contiene type y message. Incluye el valor del encabezado request-id cuando escales a soporte.

{
  "error": {
    "type": "authentication_error",
    "message": "The API key provided is invalid or has been revoked."
  }
}

En esta página, las sesiones locales se ejecutan en las máquinas de los usuarios y las sesiones remotas se ejecutan en la nube; consulta Recuperar transcripciones de sesiones.

Haz la comparación sobre error.type, no sobre la cadena del mensaje. Los mensajes son lo suficientemente estables como para copiarlos en runbooks, pero podrían reformularse con el tiempo; los valores de type forman parte del contrato de la API. Los endpoints de sesiones locales tienen algunas excepciones documentadas en las que respuestas que comparten un type se distinguen por su mensaje; cada una se señala donde aplica.

La siguiente tabla te indica de un vistazo si debes reintentar. Cada sección que sigue muestra el cuerpo de error literal y la solución.

Estado¿Reintentar?Cuándo
400 Bad RequestNoCorrige la solicitud y vuelve a enviarla.
401 UnauthorizedNoCorrige o rota la clave, luego vuelve a enviar.
403 ForbiddenNoAgrega el scope faltante o usa el tipo de clave correcto, luego vuelve a enviar.
404 Not FoundNormalmente noEl recurso fue eliminado o nunca existió; quítalo de tu cola. Excepciones: en los endpoints de sesiones locales, el mensaje Local sessions are not available. (devuelto en cada llamada, incluida la de lista) significa que los endpoints no están disponibles actualmente para tu organización padre, no que una sesión haya desaparecido; conserva tus IDs en cola y consulta Sesión local no encontrada. Una sesión remota que aún está en estado pending devuelve 404 en su endpoint de mensajes hasta que se inicia; consulta Sesión remota no encontrada.
409 ConflictNoLa solicitud entra en conflicto con el estado actual del recurso; resuelve el conflicto (por ejemplo, desvinculando recursos hijos), luego reintenta.
429 Too Many RequestsSí, después de retry-afterEspera los segundos indicados en retry-after, luego reintenta; no avances tu cursor.
500 Internal Server ErrorDepende de x-should-retryRevisa el encabezado de respuesta x-should-retry antes de reintentar.
502, 503, 504, 529Sí, con backoffTransitorio; reintenta con backoff exponencial. Excepción: algunos 503 de sesiones locales no son transitorios. Consulta Sesiones locales temporalmente no disponibles.

400 Bad Request

La solicitud era sintácticamente válida pero contenía un parámetro que el servidor rechazó. Corrige el parámetro y reintenta.

Formato de marca de tiempo no válido

Type: 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".

Causa: Un valor de created_at.* o updated_at.* (.gte, .gt, .lte, .lt) no pudo analizarse como fecha y hora. El mensaje nombra el parámetro que falló y repite el valor que se envió.

Solución: Envía una marca de tiempo RFC 3339 completa que incluya hora y zona horaria, por ejemplo, 2024-03-01T00:00:00Z o 2024-03-01T00:00:00+00:00.

La lista de sesiones locales (GET /v1/compliance/apps/sessions/local) también devuelve un 400 invalid_request_error cuando se proporcionan ambos límites de tiempo y created_at.lt no es estrictamente posterior a created_at.gte. El cuerpo dice:

created_at.lt must be strictly after created_at.gte.

Envía un created_at.lt posterior a created_at.gte, u omite uno de los límites.

Límite no válido

Type: invalid_request_error

The limit parameter must be between 1 and 1000, inclusive. Got 1500.

Causa: El parámetro de consulta limit estaba fuera del rango aceptado. El límite nombrado en el mensaje refleja el máximo para el endpoint específico que se llamó.

Solución: Envía un limit dentro del rango que acepta el endpoint. Cada endpoint de lista tiene su propio rango de limit; consulta las restricciones de parámetros en la página correspondiente de la referencia de la Compliance API.

Los endpoints de transcripción de sesiones (GET /v1/compliance/apps/sessions/local/{session_id}/messages y GET /v1/compliance/apps/sessions/remote/{session_id}/messages) validan sus parámetros de truncamiento de la misma manera: tool_use_input_max_bytes y tool_result_max_bytes aceptan cada uno un conteo de bytes positivo o -1 (el máximo del servidor), por lo que un valor como 0 devuelve el mismo 400 invalid_request_error.

ID de paginación no válido

Type: invalid_request_error

Invalid `after_id`. No activity found for `after_id` "activity_invalid123"

Causa: El cursor after_id o before_id no pudo decodificarse como cursor opaco ni analizarse como ID de actividad.

Solución: Trata los cursores de paginación como cadenas opacas. Copia siempre el valor first_id o last_id devuelto por la página anterior; detente cuando has_more sea false. No construyas cursores a partir de IDs de objetos.

Los endpoints de directorio, proyectos y sesiones (organizaciones, usuarios, roles, permisos de roles, grupos, miembros de grupos, proyectos, adjuntos de proyectos, sesiones locales y remotas, y mensajes de sesiones) paginan con un token page opaco en lugar de after_id y before_id. Aplica el mismo consejo: pasa el valor next_page de la respuesta anterior sin modificar, y detente cuando has_more sea false (o, en los endpoints de sesiones, que no devuelven has_more, cuando next_page sea null). Un token page mal formado devuelve el mismo 400 invalid_request_error que un after_id o before_id mal formado.

Los dos endpoints paginados de sesiones locales (el de lista y el de mensajes) devuelven el siguiente 400 invalid_request_error para cualquier valor de page que no puedan decodificar, por ejemplo, un token que fue truncado o alterado después de que lo almacenaste, o uno emitido por un endpoint diferente o bajo una organización padre diferente. En el endpoint de mensajes de sesiones locales (GET /v1/compliance/apps/sessions/local/{session_id}/messages), cada cursor page también está vinculado a la sesión y al order para los que fue emitido, por lo que un cursor emitido para una sesión u orden de clasificación diferente devuelve el mismo cuerpo:

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

Los cursores en el endpoint de mensajes también expiran 24 horas después de que comenzó el recorrido (una pasada por las páginas). Un cursor expirado devuelve:

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

Para el primer cuerpo, vuelve a enviar el valor next_page sin modificar de la respuesta anterior al endpoint y la sesión que lo emitieron. Para un cursor expirado, reinicia sin un parámetro page; el nuevo recorrido refleja el límite de retención vigente cuando comienza, por lo que los mensajes que salieron del período de retención en el ínterin ya no se devuelven (consulta Recuperar una transcripción de sesión local).

401 Unauthorized

El encabezado x-api-key faltaba o no coincidía con una clave conocida. Una clave válida con los scopes incorrectos devuelve 403 Forbidden en su lugar.

Clave de API no válida

Type: authentication_error

The API key provided is invalid or has been revoked.

Causa: La clave en x-api-key no existe, ha sido eliminada o ha sido deshabilitada. Un encabezado x-api-key faltante o vacío devuelve el mismo cuerpo, así que revisa tanto tu almacén de secretos como el estado de revocación de la clave.

Solución: Confirma el valor de la clave, verifica que no haya sido eliminada en claude.ai (Compliance Access Keys) o en Claude Console (claves de Admin API), y confirma que esté habilitada. Consulta Configurar la Compliance API.

403 Forbidden

La clave en x-api-key es válida pero no tiene el scope que requiere el endpoint. El mensaje literal enumera los scopes que tiene la clave (Got:) y los scopes que requiere el endpoint (Needed:), de modo que puedes confirmar qué tiene la clave sin volver a revisar Claude Console o claude.ai. Los scopes de una Compliance Access Key son inmutables después de su creación, por lo que cada solución de scope insuficiente te indica crear una nueva clave en lugar de editar la existente. Una organización independiente de Claude Console (una sin organización padre) no puede crear una Compliance Access Key, por lo que las soluciones que requieren una no le aplican; solo puede consultar el Activity Feed.

Scope insuficiente: Activity Feed

Type: permission_error

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

Causa: Se usó una clave sin read:compliance_activities para llamar a GET /v1/compliance/activities. Hay dos caminos comunes hacia este error:

  • Se creó una Compliance Access Key (sk-ant-api01-...) sin el scope read:compliance_activities.
  • Se creó una clave de Admin API de Claude Console (sk-ant-admin01-...) mientras la Compliance API no estaba habilitada para la organización. Las claves creadas mientras la Compliance API no estaba habilitada no tienen el scope; consulta Configurar la Compliance API.

Solución: Los scopes de una Compliance Access Key son inmutables después de su creación. Crea una nueva clave que incluya read:compliance_activities, o usa una clave de Admin API de Claude Console. Consulta ¿Qué clave necesitas? para conocer las condiciones bajo las cuales una clave de Admin API tiene este scope.

Scope insuficiente: datos de la organización

Type: permission_error

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

Causa: Se usó una clave sin read:compliance_org_data para llamar a un endpoint de organizaciones, roles, grupos o configuración efectiva. Hay dos caminos comunes hacia este error:

  • Se creó una Compliance Access Key (sk-ant-api01-...) sin el scope read:compliance_org_data.
  • Se usó una clave de Admin API de Claude Console (sk-ant-admin01-...). Las claves de Admin API solo tienen read:compliance_activities y no pueden leer metadatos de la organización.

Solución: Crea una nueva Compliance Access Key con read:compliance_org_data seleccionado. Las claves de Admin API no pueden leer metadatos de la organización; se requiere la Compliance Access Key.

Scope retirado: configuración de la organización

Type: permission_error

Missing required scopes. Got: ['read:compliance_org_settings'] Needed: ['read:compliance_org_data']

Causa: El scope read:compliance_org_settings se retiró el 30 de junio de 2026. GET /v1/compliance/organizations/{organization_id}/settings ahora requiere read:compliance_org_data, el mismo scope que los demás endpoints de organización, y el scope retirado ya no autoriza nada. Una Compliance Access Key que solo tiene read:compliance_org_settings devuelve este error en cada llamada al endpoint de configuración, aunque la clave funcionara antes del retiro. El scope retirado ya no puede seleccionarse ni otorgarse al crear una clave.

Solución: Los scopes de una Compliance Access Key son inmutables después de su creación. Crea una nueva Compliance Access Key con read:compliance_org_data seleccionado, actualiza tu integración para usarla y luego elimina la clave antigua. Una clave que ya tiene read:compliance_org_data no se ve afectada por el retiro.

Scope insuficiente: datos de usuario

Type: permission_error

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

Causa: Se usó una clave sin read:compliance_user_data para llamar a un endpoint de chats, mensajes, archivos, proyectos, sesiones, usuarios de la organización o miembros de grupos. Hay dos caminos comunes hacia este error:

  • Se creó una Compliance Access Key (sk-ant-api01-...) sin el scope read:compliance_user_data.
  • Se usó una clave de Admin API de Claude Console (sk-ant-admin01-...). Las claves de Admin API solo tienen read:compliance_activities y no se les puede otorgar read:compliance_user_data, por lo que no pueden llamar a los endpoints de chats, archivos, proyectos, adjuntos de proyectos, sesiones, usuarios o miembros de grupos.

Solución: Usa una Compliance Access Key creada en claude.ai con read:compliance_user_data seleccionado. Si la solicitud realmente debería ser solo del Activity Feed, apunta la clave de Admin API a GET /v1/compliance/activities en su lugar.

Scope insuficiente: eliminación

Type: permission_error

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

Causa: Se usó una Compliance Access Key sin delete:compliance_user_data para llamar a un endpoint DELETE sobre chats, archivos o proyectos.

Solución: Crea una nueva Compliance Access Key con delete:compliance_user_data seleccionado. El scope de eliminación es independiente de read:compliance_user_data para que las claves de auditoría de solo lectura no puedan eliminar contenido.

404 Not Found

El endpoint se resolvió pero el ID del recurso no existe o ya ha sido eliminado. Las eliminaciones de la Compliance API son inmediatas y permanentes, por lo que un 404 sobre un ID previamente conocido normalmente significa que el contenido fue eliminado de forma definitiva mediante una llamada de eliminación de la Compliance API o removido por una política de retención. Los endpoints de sesiones agregan dos casos. En los endpoints de sesiones locales, se devuelve un mensaje 404 distinto, Local sessions are not available., en cada llamada (incluida la de lista) mientras los endpoints no están disponibles para tu organización padre; no depende del ID de sesión y puede ser temporal. Consulta Sesión local no encontrada. En los endpoints de sesiones remotas, una sesión que aún se está aprovisionando (status de pending) todavía no tiene transcripción, por lo que su endpoint de mensajes devuelve 404 hasta que la sesión se inicia. Consulta Sesión remota no encontrada. Las cadenas de tipo de actividad citadas en cada Solución (por ejemplo, claude_chat_created) son valores que puedes pasar al filtro activity_types[] del Activity Feed; consulta Consultar actividades de cumplimiento para ver todos los valores admitidos.

Chat no encontrado

Type: not_found_error

Chat claude_chat_01H5CWunD7RpVJ5bHa8RCkja not found.

Causa: El ID de chat en la ruta no coincide con un chat legible a través de la Compliance API. El chat podría haber sido eliminado de forma definitiva mediante una llamada anterior a la Compliance API o removido por la política de retención de tu organización, o podría pertenecer a una organización que la clave que realiza la llamada no puede leer. Los chats que un usuario eliminó en claude.ai no devuelven 404; siguen siendo legibles, con deleted_at poblado, pero sin el contenido de sus mensajes.

Solución: Confirma el ID de chat contra una actividad reciente claude_chat_created o claude_chat_viewed. Si la actividad es reciente y la lectura sigue fallando, el chat ha sido eliminado de forma definitiva (a través de esta API o por expiración de la política de retención) o pertenece a una organización fuera del alcance de tu clave.

Archivo no encontrado

Type: not_found_error

No file found with provided id, or it has already been deleted.

Causa: El ID de archivo no existe o ha sido eliminado. Este error aplica tanto a archivos adjuntos a chats (claude_file_...) como a archivos de proyectos.

Solución: Concilia contra actividades recientes claude_file_uploaded o claude_file_deleted. Si el archivo fue eliminado, el binario ya no existe; el registro de actividad permanece en el feed durante la ventana de retención de 6 años.

Proyecto no encontrado

Type: not_found_error

No project is found with the provided id.

Causa: El ID de proyecto no existe o ha sido eliminado.

Solución: Concilia contra actividades recientes claude_project_created o claude_project_deleted. El Activity Feed sigue exponiendo los eventos del ciclo de vida del proyecto incluso después de que el proyecto en sí haya desaparecido.

Documento de proyecto no encontrado

Type: not_found_error

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

Causa: El ID de documento de proyecto no existe o ha sido eliminado. Este error aplica a documentos de proyecto de texto (claude_proj_doc_...), no a archivos de proyecto.

Solución: Usa GET /v1/compliance/apps/projects/{project_id}/attachments para listar los adjuntos actuales. Si el documento falta, fue eliminado; recupéralo a través de un registro de actividad claude_project_document_uploaded si solo necesitas los metadatos.

Sesión local no encontrada

Type: not_found_error

Local session not found.

Causa: El ID de sesión pasado a GET /v1/compliance/apps/sessions/local/{session_id} o GET /v1/compliance/apps/sessions/local/{session_id}/messages no coincide con una sesión local legible a través de la Compliance API. Ambos endpoints devuelven este único mensaje, sin distinguir la causa, cuando el ID no es una sesión en una organización que tu clave puede leer (incluidos IDs que pertenecen a otra organización padre), cuando la sesión nunca existió, cuando la retención cero de datos está vigente para la sesión, o cuando toda la actividad de la sesión ha superado el período de retención que aplica a la organización que la ejecutó. La respuesta Local session not found. no tiene forma transitoria, porque las sesiones locales no tienen estado de aprovisionamiento (pending); compara con Sesión remota no encontrada, donde una sesión pending devuelve 404 hasta que se inicia. Un ID de sesión que no es un identificador clls_ bien formado devuelve 400 Bad Request en su lugar.

Los endpoints de sesiones locales, incluido el endpoint de lista, devuelven un mensaje 404 diferente, Local sessions are not available., mientras los propios endpoints no están disponibles para tu organización padre. Esa respuesta no depende del ID de sesión; ninguna clave, scope o configuración del lado del cliente la cambia, y puede ser temporal. Ambas respuestas tienen el type not_found_error; el texto del mensaje es lo que las distingue.

Solución: Confirma el ID de sesión contra GET /v1/compliance/apps/sessions/local; consulta Sesiones en las máquinas de los usuarios. Si la sesión ya no aparece en la lista, su contenido ha superado la retención (o la sesión ya no está, por otro motivo, en una organización que tu clave puede leer) y su transcripción no es recuperable; quita el ID de tu cola. Si cada llamada, incluida la de lista, devuelve Local sessions are not available., conserva tus IDs de sesión en cola y reintenta en tu próxima ejecución programada; si la respuesta persiste, contacta a tu representante de Anthropic e incluye el encabezado de respuesta request-id.

Sesión remota no encontrada

Type: not_found_error

Remote session not found.

Causa: El ID de sesión pasado a GET /v1/compliance/apps/sessions/remote/{session_id}/messages no coincide con una transcripción de sesión legible a través de la Compliance API. Esto ocurre cuando el ID de sesión (cse_...) no existe o la sesión ha sido eliminada, cuando la sesión pertenece a una organización que tu clave no puede leer, o cuando el status de la sesión aún es pending: una sesión pendiente todavía no tiene transcripción, por lo que el endpoint de mensajes devuelve 404 hasta que la sesión se inicia. Un ID de sesión que no es un identificador cse_ bien formado devuelve 400 Bad Request en su lugar.

Solución: Confirma el ID de sesión y su status contra GET /v1/compliance/apps/sessions/remote; consulta Sesiones en la nube. Si la sesión está pending, reintenta después de que salga de ese estado. Si la sesión ya no aparece en la lista, ha sido eliminada y su transcripción no es recuperable.

Organización, rol o grupo no encontrado

Type: not_found_error

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

Los endpoints de organizaciones, roles y grupos devuelven un 404 not_found_error en el formato de error estándar. El mensaje de organización nombra el org_uuid; los mensajes de rol y grupo son genéricos (Role not found., Group not found.). Esto ocurre cuando un ID de ruta (org_uuid, role_id o group_id) no existe o ya no pertenece a un árbol que la clave que realiza la llamada puede leer.

Causa: El ID en la ruta no coincide con un registro legible a través de la Compliance API. Los roles y grupos pueden eliminarse, y las organizaciones pueden desvincularse del árbol padre.

Solución: Verifica el ID contra el endpoint de lista correspondiente, y concilia contra actividades recientes de organización, rol o grupo en el Activity Feed.

Configuración de la organización no disponible

Type: not_found_error

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

Causa: GET /v1/compliance/organizations/{organization_id}/settings devuelve este 404 en tres casos que comparten intencionalmente el mismo cuerpo para que la respuesta no revele si una organización existe: el organization_id no es una de las organizaciones vinculadas de tu padre, el valor no es un UUID válido, o el endpoint de configuración aún no está habilitado para tu organización padre.

Solución: Verifica el ID contra Listar organizaciones. Si un ID de organización que sabes que es correcto sigue devolviendo 404, el endpoint de configuración aún no está habilitado para tu organización padre; contacta a tu representante de Anthropic.

409 Conflict

La solicitud está bien formada y autorizada pero entra en conflicto con el estado actual del recurso.

El proyecto tiene chats adjuntos

Type: 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.

Causa: Se llamó a DELETE /v1/compliance/apps/projects/{project_id} sobre un proyecto que todavía tiene chats adjuntos.

Solución: Lista los chats del proyecto con GET /v1/compliance/apps/chats?user_ids[]={user_id}&project_ids[]={project_id} (el filtro project_ids[] requiere al menos un valor user_ids[]; enumera los IDs a través de Listar usuarios de la organización), elimina cada uno con DELETE /v1/compliance/apps/chats/{claude_chat_id}, y luego reintenta la eliminación del proyecto.

429 Too Many Requests

Las solicitudes a la Compliance API están limitadas a 600 solicitudes por minuto por organización padre. El límite es un único presupuesto compartido entre todas las claves bajo el padre (Compliance Access Keys y las claves de Admin API de todas las organizaciones vinculadas) y entre todos los endpoints /v1/compliance/*; los endpoints de sesiones remotas tienen además un segundo presupuesto de solicitudes. Para una organización independiente de Claude Console, que no tiene organización padre, el mismo presupuesto aplica a la propia organización y se comparte entre sus claves de Admin API. Contacta a tu representante de Anthropic si tu integración necesita un límite más alto.

Una vez que tu clave de API se autentica, las respuestas de la Compliance API informan el presupuesto compartido a través de los encabezados de respuesta de "rate limit" (límite de velocidad) estándar para que tu cliente pueda regularse proactivamente en lugar de esperar un 429:

  • anthropic-ratelimit-requests-limit es el presupuesto de solicitudes por minuto.
  • anthropic-ratelimit-requests-remaining es el presupuesto restante en la ventana actual.
  • anthropic-ratelimit-requests-reset es la marca de tiempo RFC 3339 en la que la ventana se reinicia y se restaura el presupuesto completo.

Una respuesta 429 también tiene un encabezado retry-after con el número de segundos que debes esperar antes de enviar la siguiente solicitud. Este valor podría incluir un pequeño margen de seguridad más allá de anthropic-ratelimit-requests-reset; respeta 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."
  }
}

Causa: Tu organización padre (u organización independiente de Claude Console) envió más de 600 solicitudes a /v1/compliance/* en una ventana de 1 minuto, entre todas las claves que comparten su presupuesto, o agotó el segundo presupuesto de solicitudes de los endpoints de sesiones remotas (descrito más adelante en esta sección).

Solución: Espera el número de segundos indicado en el encabezado retry-after, luego reintenta. Si el encabezado está ausente (por ejemplo, eliminado por un intermediario), recurre a backoff exponencial (comienza en 1 segundo, duplica hasta 60 segundos). No avances tu cursor de paginación ante un 429: la solicitud fallida no devolvió datos, por lo que el cursor de la última página exitosa sigue siendo correcto.

Las solicitudes que fallan la autenticación (una clave faltante o no reconocida, o una clave de la Claude API en lugar de una Compliance Access Key o clave de Admin API) se rechazan antes del limitador de velocidad y no consumen cuota. Una clave válida que carece del scope requerido por el endpoint consume una unidad de cuota antes de que se devuelva el 403.

Los endpoints de sesiones locales cuentan solo contra el límite compartido. Los endpoints de sesiones remotas también tienen un segundo presupuesto de solicitudes, asociado a tu organización padre igual que el límite compartido, además de este. Un 429 de ese presupuesto tiene un encabezado retry-after que siempre es 1 (una espera mínima, no el tiempo real de reinicio); cualquier encabezado anthropic-ratelimit-* en esa respuesta describe el límite compartido y no este presupuesto, así que aplica backoff exponencial si el 429 se repite.

Si consultas el Activity Feed de forma programada, presupuesta tu tasa agregada de solicitudes (entre todas las claves, organizaciones vinculadas y workers concurrentes) por debajo del límite compartido. Observa anthropic-ratelimit-requests-remaining para reducir la velocidad antes de alcanzarlo. Consulta Diseña tu integración de cumplimiento para elegir entre sondeo por ventanas e ingesta basada en cursores.

500 Internal Server Error

Un 500 de la Compliance API tiene un encabezado de respuesta x-should-retry: false cuando la falla es determinista. Los SDKs de Anthropic respetan este encabezado automáticamente. Si usas una biblioteca genérica de reintentos HTTP que reintenta ante cada 5xx, suprime los reintentos cuando x-should-retry sea false; reintentar este error falla de forma idéntica en cada intento.

Un 500 sin el encabezado x-should-retry: false es transitorio: reintenta con backoff exponencial (comienza en 1 segundo, duplica hasta 60 segundos). Lo mismo aplica a las respuestas 502, 503, 504 y 529. La excepción es un pequeño conjunto de 503 de sesiones locales, descritos a continuación, que dependen de la configuración o la clave de cifrado de una organización y no de la carga. Consulta Errores para conocer la semántica de reintentos de toda la plataforma.

Sesiones locales temporalmente no disponibles

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.

Causa: Los endpoints de sesiones locales devuelven 503 con uno de estos cuerpos. Los tres comparten el type overloaded_error, por lo que este es uno de los pocos errores de esta página en los que necesitas el texto del mensaje, no error.type, para distinguir las condiciones:

  • El cuerpo index is temporarily unavailable significa que los listados de sesiones no están disponibles brevemente debido a la carga o a una condición del back-end. Esto es transitorio.
  • El cuerpo Captured content significa que el contenido de la transcripción de una sesión no puede devolverse en este momento. Esto normalmente también es transitorio. En organizaciones que usan claves de cifrado administradas por el cliente, el endpoint de mensajes también devuelve este cuerpo para cada página que contiene contenido que tu clave no puede descifrar, por ejemplo porque deshabilitaste, revocaste o destruiste la clave, o porque no se puede acceder a la clave. En ese caso el error persiste mientras la clave no pueda usarse. El texto del mensaje es el mismo en ambos casos, por lo que la única señal de que la clave es la causa es que el error sigue repitiéndose para esa organización. Una clave inutilizable nunca se informa como not_captured.
  • El cuerpo retention overrides significa que una configuración de retención o de manejo de datos que aplica a una o más sesiones en el rango solicitado aún no pudo evaluarse. En los endpoints de recuperación y de mensajes dice for this session en lugar de for this page. Depende de los datos y la configuración de la organización que ejecutó la sesión y no de la carga, y puede persistir durante un período prolongado.

Solución: Maneja cada cuerpo de la siguiente manera:

  • Para los dos cuerpos Try again shortly., reintenta con backoff exponencial y no avances tu cursor page, porque la solicitud fallida no devolvió datos.
  • Si el cuerpo Captured content sigue repitiéndose en el endpoint de mensajes para una organización que usa una clave administrada por el cliente, trátalo como persistente: deja de recorrer las transcripciones de esa organización y revisa el estado de la clave en tu servicio de administración de claves. Las transcripciones en otras organizaciones vinculadas, y los metadatos de sesiones en todas partes, no se ven afectados. Si reintentas en una ejecución posterior, reinicia el recorrido de cada sesión sin page, porque los cursores de página de mensajes expiran 24 horas después de la primera página del recorrido.
  • Para el cuerpo Try again later., no mantengas un recorrido abierto esperando a que se resuelva. En el endpoint de lista, reintenta más tarde reiniciando sin el parámetro page (un token de página de lista con más de 24 horas de antigüedad aún se acepta pero se reevalúa contra el límite de retención actual, por lo que un recorrido en pausa puede omitir sesiones), o reduce la ventana de created_at.gte y created_at.lt hasta que la solicitud tenga éxito y exporta el rango omitido por separado en una ejecución posterior. En los endpoints de recuperación y de mensajes, omite ese ID de sesión, continúa con el resto de tu exportación y reintenta la sesión en una ejecución posterior. Los cursores de página de mensajes expiran 24 horas después de la primera página del recorrido, así que reinicia el recorrido de esa sesión sin page cuando vuelvas a ella.

Si alguna de estas condiciones se repite entre ejecuciones, contacta a tu representante de Anthropic e incluye el encabezado de respuesta request-id. Para el caso de la clave administrada por el cliente, hazlo solo si el error continúa mientras tu clave es utilizable.

Para incidentes que afectan a todo el servicio, consulta status.anthropic.com.

Próximos pasos

Preguntas comunes sobre acceso, scopes, retención e integración.

El catálogo de errores de toda la plataforma y la semántica de reintentos.

Was this page helpful?