Tratar erros da Compliance API
Todas as mensagens de erro da Compliance API com causa e correção, organizadas por código de status HTTP.
Esta página lista as mensagens de resposta que cada endpoint documentado da Compliance API retorna, a causa e a correção.
A Compliance API retorna erros no formato de erro padrão da Anthropic: um código de status diferente de 2xx, um cabeçalho de resposta request-id e um corpo JSON com um objeto error contendo type e message. Inclua o valor do cabeçalho request-id ao escalar para o suporte.
{
"error": {
"type": "authentication_error",
"message": "The API key provided is invalid or has been revoked."
}
}Nesta página, sessões locais são executadas nas máquinas dos usuários e sessões remotas são executadas na nuvem; consulte Recuperar transcrições de sessões.
Faça a correspondência por error.type, não pela string da mensagem. As mensagens são estáveis o suficiente para serem copiadas em runbooks, mas podem ser reformuladas ao longo do tempo; os valores de type fazem parte do contrato da API. Os endpoints de sessões locais têm algumas exceções documentadas em que respostas que compartilham um type são diferenciadas pela mensagem; cada uma é indicada onde se aplica.
A tabela a seguir informa rapidamente se você deve tentar novamente. Cada seção seguinte mostra o corpo do erro literal e a correção.
| Status | Tentar novamente? | Quando |
|---|---|---|
| 400 Bad Request | Não | Corrija a requisição e reenvie. |
| 401 Unauthorized | Não | Corrija ou rotacione a chave e, em seguida, reenvie. |
| 403 Forbidden | Não | Adicione o escopo ausente ou use o tipo de chave correto e, em seguida, reenvie. |
| 404 Not Found | Geralmente não | O recurso foi excluído ou nunca existiu; remova-o da sua fila. Exceções: nos endpoints de sessões locais, a mensagem Local sessions are not available. (retornada em todas as chamadas, incluindo a listagem) significa que os endpoints estão atualmente indisponíveis para sua organização pai, não que uma sessão desapareceu; mantenha seus IDs enfileirados e consulte Sessão local não encontrada. Uma sessão remota ainda no status pending retorna 404 em seu endpoint de mensagens até ser iniciada; consulte Sessão remota não encontrada. |
| 409 Conflict | Não | A requisição conflita com o estado atual do recurso; resolva o conflito (como desanexar recursos filhos) e, em seguida, tente novamente. |
| 429 Too Many Requests | Sim, após retry-after | Aguarde os segundos indicados em retry-after e, em seguida, tente novamente; não avance seu cursor. |
| 500 Internal Server Error | Depende de x-should-retry | Verifique o cabeçalho de resposta x-should-retry antes de tentar novamente. |
| 502, 503, 504, 529 | Sim, com backoff | Transitório; tente novamente com backoff exponencial. Exceção: alguns 503 de sessões locais não são transitórios. Consulte Sessões locais temporariamente indisponíveis. |
400 Bad Request
A requisição era sintaticamente válida, mas continha um parâmetro que o servidor rejeitou. Corrija o parâmetro e tente novamente.
Formato de timestamp invá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: Um valor created_at.* ou updated_at.* (.gte, .gt, .lte, .lt) não pôde ser interpretado como datetime. A mensagem nomeia o parâmetro que falhou e repete o valor que foi enviado.
Correção: Envie um timestamp RFC 3339 completo, incluindo hora e fuso horário, por exemplo, 2024-03-01T00:00:00Z ou 2024-03-01T00:00:00+00:00.
A listagem de sessões locais (GET /v1/compliance/apps/sessions/local) também retorna um 400 invalid_request_error quando ambos os limites de tempo são fornecidos e created_at.lt não é estritamente posterior a created_at.gte. O corpo é:
created_at.lt must be strictly after created_at.gte.Envie um created_at.lt posterior a created_at.gte ou omita um dos limites.
Limit inválido
Type: invalid_request_error
The limit parameter must be between 1 and 1000, inclusive. Got 1500.Causa: O parâmetro de consulta limit estava fora do intervalo aceito. O limite nomeado na mensagem reflete o máximo para o endpoint específico que foi chamado.
Correção: Envie um limit dentro do intervalo que o endpoint aceita. Cada endpoint de listagem tem seu próprio intervalo de limit; consulte as restrições de parâmetros na página correspondente da referência da Compliance API.
Os endpoints de transcrição de sessões (GET /v1/compliance/apps/sessions/local/{session_id}/messages e GET /v1/compliance/apps/sessions/remote/{session_id}/messages) validam seus parâmetros de truncamento da mesma forma: tool_use_input_max_bytes e tool_result_max_bytes aceitam cada um uma contagem de bytes positiva ou -1 (o máximo do servidor), portanto um valor como 0 retorna o mesmo 400 invalid_request_error.
ID de paginação inválido
Type: invalid_request_error
Invalid `after_id`. No activity found for `after_id` "activity_invalid123"Causa: O cursor after_id ou before_id não pôde ser decodificado como um cursor opaco nem interpretado como um ID de atividade.
Correção: Trate os cursores de paginação como strings opacas. Sempre copie o valor first_id ou last_id retornado pela página anterior; pare quando has_more for false. Não construa cursores a partir de IDs de objetos.
Os endpoints de diretório, projetos e sessões (organizações, usuários, funções, permissões de funções, grupos, membros de grupos, projetos, anexos de projetos, sessões locais e remotas e mensagens de sessões) paginam com um token page opaco em vez de after_id e before_id. O mesmo conselho se aplica: passe o valor next_page da resposta anterior sem alterações e pare quando has_more for false (ou, nos endpoints de sessões, que não retornam has_more, quando next_page for null). Um token page malformado retorna o mesmo 400 invalid_request_error que um after_id ou before_id malformado.
Os dois endpoints paginados de sessões locais (a listagem e o endpoint de mensagens) retornam o seguinte 400 invalid_request_error para qualquer valor de page que não consigam decodificar, por exemplo, um token que foi truncado ou alterado depois que você o armazenou, ou um emitido por um endpoint diferente ou sob uma organização pai diferente. No endpoint de mensagens de sessões locais (GET /v1/compliance/apps/sessions/local/{session_id}/messages), cada cursor page também está vinculado à sessão e ao order para os quais foi emitido, portanto um cursor emitido para uma sessão ou ordem de classificação diferente retorna o mesmo corpo:
The page parameter is not a valid cursor for this request.Os cursores no endpoint de mensagens também expiram 24 horas após o início do percurso (uma passagem pelas páginas). Um cursor expirado retorna:
The page cursor has expired. Restart the walk without a page parameter; results will reflect the current retention boundary.Para o primeiro corpo, reenvie o valor next_page não modificado da resposta anterior ao endpoint e à sessão que o emitiram. Para um cursor expirado, reinicie sem um parâmetro page; o novo percurso reflete o limite de retenção em vigor quando ele começa, portanto mensagens que saíram do período de retenção nesse intervalo não são mais retornadas (consulte Recuperar uma transcrição de sessão local).
401 Unauthorized
O cabeçalho x-api-key estava ausente ou não correspondia a uma chave conhecida. Uma chave válida com os escopos errados retorna 403 Forbidden em vez disso.
Chave de API inválida
Type: authentication_error
The API key provided is invalid or has been revoked.Causa: A chave em x-api-key não existe, foi excluída ou foi desabilitada. Um cabeçalho x-api-key ausente ou vazio retorna o mesmo corpo, portanto verifique tanto seu armazenamento de segredos quanto o status de revogação da chave.
Correção: Confirme o valor da chave, verifique se ela não foi excluída no claude.ai (Compliance Access Keys) ou no Claude Console (chaves de Admin API) e confirme que está habilitada. Consulte Configurar a Compliance API.
403 Forbidden
A chave em x-api-key é válida, mas não possui o escopo que o endpoint exige. A mensagem literal lista os escopos que a chave possui (Got:) e os escopos que o endpoint exige (Needed:), para que você possa confirmar o que a chave possui sem verificar novamente o Claude Console ou o claude.ai. Os escopos de uma Compliance Access Key são imutáveis após a criação, portanto cada correção de escopo insuficiente orienta você a criar uma nova chave em vez de editar a existente. Uma organização independente do Claude Console (uma sem organização pai) não pode criar uma Compliance Access Key, portanto as correções que exigem uma não se aplicam a ela; ela pode consultar apenas o Activity Feed.
Escopo insuficiente: Activity Feed
Type: permission_error
Missing required scopes. Got: ['read:compliance_user_data'] Needed: ['read:compliance_activities']Causa: Uma chave sem read:compliance_activities foi usada para chamar GET /v1/compliance/activities. Há dois caminhos comuns para esse erro:
- Uma Compliance Access Key (
sk-ant-api01-...) foi criada sem o escoporead:compliance_activities. - Uma chave de Admin API do Claude Console (
sk-ant-admin01-...) foi criada enquanto a Compliance API não estava habilitada para a organização. Chaves criadas enquanto a Compliance API não estava habilitada não possuem o escopo; consulte Configurar a Compliance API.
Correção: Os escopos de uma Compliance Access Key são imutáveis após a criação. Crie uma nova chave que inclua read:compliance_activities ou use uma chave de Admin API do Claude Console. Consulte De qual chave você precisa? para as condições sob as quais uma chave de Admin API possui esse escopo.
Escopo insuficiente: dados da organização
Type: permission_error
Missing required scopes. Got: ['read:compliance_user_data'] Needed: ['read:compliance_org_data']Causa: Uma chave sem read:compliance_org_data foi usada para chamar um endpoint de organizações, funções, grupos ou configurações efetivas. Há dois caminhos comuns para esse erro:
- Uma Compliance Access Key (
sk-ant-api01-...) foi criada sem o escoporead:compliance_org_data. - Uma chave de Admin API do Claude Console (
sk-ant-admin01-...) foi usada. Chaves de Admin API possuem apenasread:compliance_activitiese não podem ler metadados da organização.
Correção: Crie uma nova Compliance Access Key com read:compliance_org_data selecionado. Chaves de Admin API não podem ler metadados da organização; a Compliance Access Key é obrigatória.
Escopo desativado: configurações da organização
Type: permission_error
Missing required scopes. Got: ['read:compliance_org_settings'] Needed: ['read:compliance_org_data']Causa: O escopo read:compliance_org_settings foi desativado em 30 de junho de 2026. GET /v1/compliance/organizations/{organization_id}/settings agora exige read:compliance_org_data, o mesmo escopo dos outros endpoints de organização, e o escopo desativado não autoriza mais nada. Uma Compliance Access Key que possui apenas read:compliance_org_settings retorna esse erro em todas as chamadas ao endpoint de configurações, mesmo que a chave funcionasse antes da desativação. O escopo desativado não pode mais ser selecionado nem concedido ao criar uma chave.
Correção: Os escopos de uma Compliance Access Key são imutáveis após a criação. Crie uma nova Compliance Access Key com read:compliance_org_data selecionado, atualize sua integração para usá-la e, em seguida, exclua a chave antiga. Uma chave que já possui read:compliance_org_data não é afetada pela desativação.
Escopo insuficiente: dados do usuário
Type: permission_error
Missing required scopes. Got: ['read:compliance_activities'] Needed: ['read:compliance_user_data']Causa: Uma chave sem read:compliance_user_data foi usada para chamar um endpoint de chats, mensagens, arquivos, projetos, sessões, usuários da organização ou membros de grupos. Há dois caminhos comuns para esse erro:
- Uma Compliance Access Key (
sk-ant-api01-...) foi criada sem o escoporead:compliance_user_data. - Uma chave de Admin API do Claude Console (
sk-ant-admin01-...) foi usada. Chaves de Admin API possuem apenasread:compliance_activitiese não podem receberread:compliance_user_data, portanto não podem chamar os endpoints de chat, arquivo, projeto, anexo de projeto, sessão, usuário ou membro de grupo.
Correção: Use uma Compliance Access Key criada no claude.ai com read:compliance_user_data selecionado. Se a requisição realmente deveria ser apenas do Activity Feed, aponte a chave de Admin API para GET /v1/compliance/activities em vez disso.
Escopo insuficiente: exclusão
Type: permission_error
Missing required scopes. Got: ['read:compliance_user_data'] Needed: ['delete:compliance_user_data']Causa: Uma Compliance Access Key sem delete:compliance_user_data foi usada para chamar um endpoint DELETE em chats, arquivos ou projetos.
Correção: Crie uma nova Compliance Access Key com delete:compliance_user_data selecionado. O escopo de exclusão é separado de read:compliance_user_data para que chaves de auditoria somente leitura não possam excluir conteúdo.
404 Not Found
O endpoint foi resolvido, mas o ID do recurso não existe ou já foi excluído. As exclusões da Compliance API são imediatas e permanentes, portanto um 404 em um ID anteriormente conhecido geralmente significa que o conteúdo foi excluído definitivamente por meio de uma chamada de exclusão da Compliance API ou removido por uma política de retenção. Os endpoints de sessões adicionam dois casos. Nos endpoints de sessões locais, uma mensagem 404 separada, Local sessions are not available., é retornada em todas as chamadas (incluindo a listagem) enquanto os endpoints estão indisponíveis para sua organização pai; ela não depende do ID da sessão e pode ser temporária. Consulte Sessão local não encontrada. Nos endpoints de sessões remotas, uma sessão que ainda está sendo provisionada (status igual a pending) ainda não tem transcrição, portanto seu endpoint de mensagens retorna 404 até a sessão ser iniciada. Consulte Sessão remota não encontrada. As strings de tipo de atividade citadas em cada Correção (por exemplo, claude_chat_created) são valores que você pode passar para o filtro activity_types[] do Activity Feed; consulte Consultar atividades de compliance para todos os valores suportados.
Chat não encontrado
Type: not_found_error
Chat claude_chat_01H5CWunD7RpVJ5bHa8RCkja not found.Causa: O ID do chat no caminho não corresponde a um chat legível por meio da Compliance API. O chat pode ter sido excluído definitivamente por meio de uma chamada anterior da Compliance API ou removido pela política de retenção da sua organização, ou pode pertencer a uma organização que a chave chamadora não pode ler. Chats que um usuário excluiu no claude.ai não retornam 404; eles permanecem legíveis, com deleted_at preenchido, mas sem o conteúdo de suas mensagens.
Correção: Confirme o ID do chat em relação a uma atividade recente claude_chat_created ou claude_chat_viewed. Se a atividade for recente e a leitura ainda falhar, o chat foi excluído definitivamente (por meio desta API ou por expiração da política de retenção) ou pertence a uma organização fora do escopo da sua chave.
Arquivo não encontrado
Type: not_found_error
No file found with provided id, or it has already been deleted.Causa: O ID do arquivo não existe ou foi excluído. Esse erro se aplica tanto a arquivos anexados a chats (claude_file_...) quanto a arquivos de projetos.
Correção: Reconcilie com atividades recentes claude_file_uploaded ou claude_file_deleted. Se o arquivo foi excluído, o binário não existe mais; o registro de atividade permanece no feed durante a janela de retenção de 6 anos.
Projeto não encontrado
Type: not_found_error
No project is found with the provided id.Causa: O ID do projeto não existe ou foi excluído.
Correção: Reconcilie com atividades recentes claude_project_created ou claude_project_deleted. O Activity Feed continua a expor os eventos de ciclo de vida do projeto mesmo depois que o próprio projeto não existe mais.
Documento de projeto não encontrado
Type: not_found_error
No project document found with provided id, or it has already been deleted.Causa: O ID do documento de projeto não existe ou foi excluído. Esse erro se aplica a documentos de projeto em texto (claude_proj_doc_...), não a arquivos de projetos.
Correção: Use GET /v1/compliance/apps/projects/{project_id}/attachments para listar os anexos atuais. Se o documento estiver ausente, ele foi excluído; recupere-o por meio de um registro de atividade claude_project_document_uploaded se você precisar apenas dos metadados.
Sessão local não encontrada
Type: not_found_error
Local session not found.Causa: O ID da sessão passado para GET /v1/compliance/apps/sessions/local/{session_id} ou GET /v1/compliance/apps/sessions/local/{session_id}/messages não corresponde a uma sessão local legível por meio da Compliance API. Ambos os endpoints retornam essa única mensagem, sem distinguir a causa, quando o ID não é uma sessão em uma organização que sua chave pode ler (incluindo IDs que pertencem a outra organização pai), quando a sessão nunca existiu, quando a retenção zero de dados está em vigor para a sessão ou quando toda a atividade da sessão ultrapassou o período de retenção que se aplica à organização que a executou. A resposta Local session not found. não tem forma transitória, porque sessões locais não têm estado de provisionamento (pending); compare com Sessão remota não encontrada, em que uma sessão pending retorna 404 até ser iniciada. Um ID de sessão que não é um identificador clls_ bem formado retorna 400 Bad Request em vez disso.
Os endpoints de sessões locais, incluindo o endpoint de listagem, retornam uma mensagem 404 diferente, Local sessions are not available., enquanto os próprios endpoints estão indisponíveis para sua organização pai. Essa resposta não depende do ID da sessão; nenhuma chave, escopo ou configuração do lado do cliente a altera, e ela pode ser temporária. Ambas as respostas possuem o type not_found_error; o texto da mensagem é o que as diferencia.
Correção: Confirme o ID da sessão em relação a GET /v1/compliance/apps/sessions/local; consulte Sessões nas máquinas dos usuários. Se a sessão não aparecer mais na listagem, seu conteúdo ultrapassou a retenção (ou a sessão, por outro motivo, não está mais em uma organização que sua chave pode ler) e sua transcrição não é recuperável; remova o ID da sua fila. Se todas as chamadas, incluindo a listagem, retornarem Local sessions are not available., mantenha seus IDs de sessão enfileirados e tente novamente na sua próxima execução agendada; se a resposta persistir, entre em contato com seu representante da Anthropic e inclua o cabeçalho de resposta request-id.
Sessão remota não encontrada
Type: not_found_error
Remote session not found.Causa: O ID da sessão passado para GET /v1/compliance/apps/sessions/remote/{session_id}/messages não corresponde a uma transcrição de sessão legível por meio da Compliance API. Isso ocorre quando o ID da sessão (cse_...) não existe ou a sessão foi excluída, quando a sessão pertence a uma organização que sua chave não pode ler ou quando o status da sessão ainda é pending: uma sessão pendente ainda não tem transcrição, portanto o endpoint de mensagens retorna 404 até a sessão ser iniciada. Um ID de sessão que não é um identificador cse_ bem formado retorna 400 Bad Request em vez disso.
Correção: Confirme o ID da sessão e seu status em relação a GET /v1/compliance/apps/sessions/remote; consulte Sessões na nuvem. Se a sessão estiver pending, tente novamente depois que ela sair desse status. Se a sessão não aparecer mais na listagem, ela foi excluída e sua transcrição não é recuperável.
Organização, função ou grupo não encontrado
Type: not_found_error
The "ce86b5f3-7c16-48b3-a9f3-e1d2c4b8a0f1" organization does not exist or the requester is not authorized to access it.Os endpoints de organização, função e grupo retornam um 404 not_found_error no formato de erro padrão. A mensagem de organização nomeia o org_uuid; as mensagens de função e grupo são genéricas (Role not found., Group not found.). Isso ocorre quando um ID de caminho (org_uuid, role_id ou group_id) não existe ou não pertence mais a uma árvore que a chave chamadora pode ler.
Causa: O ID no caminho não corresponde a um registro legível por meio da Compliance API. Funções e grupos podem ser excluídos, e organizações podem ser desvinculadas da árvore pai.
Correção: Verifique o ID em relação ao endpoint de listagem correspondente e reconcilie com atividades recentes de organização, função ou grupo no Activity Feed.
Configurações da organização não disponíveis
Type: not_found_error
organization `91012d09-e48b-438e-a489-1bebfd8fa6f9` not found in this organization's hierarchyCausa: GET /v1/compliance/organizations/{organization_id}/settings retorna esse 404 em três casos que intencionalmente compartilham o mesmo corpo para que a resposta não revele se uma organização existe: o organization_id não é uma das organizações vinculadas da sua organização pai, o valor não é um UUID válido ou o endpoint de configurações ainda não está habilitado para sua organização pai.
Correção: Verifique o ID em relação a Listar organizações. Se um ID de organização reconhecidamente válido ainda retornar 404, o endpoint de configurações ainda não está habilitado para sua organização pai; entre em contato com seu representante da Anthropic.
409 Conflict
A requisição está bem formada e autorizada, mas conflita com o estado atual do recurso.
Projeto tem chats anexados
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: DELETE /v1/compliance/apps/projects/{project_id} foi chamado em um projeto que ainda tem chats anexados.
Correção: Liste os chats do projeto com GET /v1/compliance/apps/chats?user_ids[]={user_id}&project_ids[]={project_id} (o filtro project_ids[] exige pelo menos um valor user_ids[]; enumere os IDs por meio de Listar usuários da organização), exclua cada um com DELETE /v1/compliance/apps/chats/{claude_chat_id} e, em seguida, tente novamente a exclusão do projeto.
429 Too Many Requests
As requisições à Compliance API são limitadas a 600 requisições por minuto por organização pai. O limite é um único orçamento compartilhado entre todas as chaves sob a organização pai (Compliance Access Keys e as chaves de Admin API de todas as organizações vinculadas) e entre todos os endpoints /v1/compliance/*; os endpoints de sessões remotas possuem um segundo orçamento de requisições adicional. Para uma organização independente do Claude Console, que não tem organização pai, o mesmo orçamento se aplica à própria organização e é compartilhado entre suas chaves de Admin API. Entre em contato com seu representante da Anthropic se sua integração precisar de um limite maior.
Depois que sua chave de API é autenticada, as respostas da Compliance API informam o orçamento compartilhado por meio dos cabeçalhos de resposta de "rate limit" (limite de taxa) padrão, para que seu cliente possa reduzir a velocidade proativamente em vez de esperar por um 429:
anthropic-ratelimit-requests-limité o orçamento de requisições por minuto.anthropic-ratelimit-requests-remainingé o orçamento restante na janela atual.anthropic-ratelimit-requests-reseté o timestamp RFC 3339 de quando a janela é redefinida e o orçamento completo é restaurado.
Uma resposta 429 também possui um cabeçalho retry-after com o número de segundos a aguardar antes de enviar a próxima requisição. Esse valor pode incluir uma pequena margem de segurança além de anthropic-ratelimit-requests-reset; respeite 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: Sua organização pai (ou organização independente do Claude Console) enviou mais de 600 requisições para /v1/compliance/* em uma janela de 1 minuto, entre todas as chaves que compartilham seu orçamento, ou esgotou o segundo orçamento de requisições dos endpoints de sessões remotas (descrito mais adiante nesta seção).
Correção: Aguarde o número de segundos no cabeçalho retry-after e, em seguida, tente novamente. Se o cabeçalho estiver ausente (por exemplo, removido por um intermediário), recorra ao "exponential backoff" (recuo exponencial) (comece em 1 segundo, dobre até 60 segundos). Não avance seu cursor de paginação em um 429: a requisição que falhou não retornou dados, portanto o cursor da última página bem-sucedida ainda está correto.
Requisições que falham na autenticação (uma chave ausente ou não reconhecida, ou uma chave da Claude API em vez de uma Compliance Access Key ou chave de Admin API) são rejeitadas antes do limitador de taxa e não consomem cota. Uma chave válida que não possui o escopo exigido pelo endpoint consome uma unidade de cota antes que o 403 seja retornado.
Os endpoints de sessões locais contam apenas para o limite compartilhado. Os endpoints de sessões remotas também possuem um segundo orçamento de requisições, vinculado à sua organização pai como o limite compartilhado, além dele. Um 429 desse orçamento possui um cabeçalho retry-after que é sempre 1 (uma espera mínima, não o tempo real de redefinição); quaisquer cabeçalhos anthropic-ratelimit-* nessa resposta descrevem o limite compartilhado em vez desse orçamento, portanto aplique backoff exponencial se o 429 se repetir.
Se você consulta o Activity Feed em um agendamento, planeje sua taxa agregada de requisições (entre todas as chaves, organizações vinculadas e workers simultâneos) abaixo do limite compartilhado. Observe anthropic-ratelimit-requests-remaining para desacelerar antes de atingi-lo. Consulte Projetar sua integração de compliance para escolher entre polling por janela e ingestão orientada por cursor.
500 Internal Server Error
Um 500 da Compliance API possui um cabeçalho de resposta x-should-retry: false quando a falha é determinística. Os SDKs da Anthropic respeitam esse cabeçalho automaticamente. Se você usa uma biblioteca HTTP genérica de novas tentativas que tenta novamente em todo 5xx, suprima as novas tentativas quando x-should-retry for false; tentar novamente esse erro falha de forma idêntica em todas as tentativas.
Um 500 sem o cabeçalho x-should-retry: false é transitório: tente novamente com backoff exponencial (comece em 1 segundo, dobre até 60 segundos). O mesmo se aplica às respostas 502, 503, 504 e 529. A exceção é um pequeno conjunto de 503 de sessões locais, descrito a seguir, que depende das configurações ou da chave de criptografia de uma organização em vez da carga. Consulte Erros para a semântica de novas tentativas de toda a plataforma.
Sessões locais temporariamente indisponíveis
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: Os endpoints de sessões locais retornam 503 com um desses corpos. Todos os três compartilham o type overloaded_error, portanto esse é um dos poucos erros nesta página em que você precisa do texto da mensagem, não de error.type, para diferenciar as condições:
- O corpo
index is temporarily unavailablesignifica que as listagens de sessões estão brevemente indisponíveis devido à carga ou a uma condição de back-end. Isso é transitório. - O corpo
Captured contentsignifica que o conteúdo da transcrição de uma sessão não pode ser retornado no momento. Isso geralmente também é transitório. Em organizações que usam chaves de criptografia gerenciadas pelo cliente, o endpoint de mensagens também retorna esse corpo para cada página que contém conteúdo que sua chave não pode descriptografar, por exemplo, porque você desabilitou, revogou ou destruiu a chave, ou porque a chave não pode ser alcançada. Nesse caso, o erro persiste enquanto a chave não puder ser usada. O texto da mensagem é o mesmo em ambos os casos, portanto o único sinal de que a chave é a causa é que o erro continua se repetindo para essa organização. Uma chave inutilizável nunca é informada comonot_captured. - O corpo
retention overridessignifica que uma configuração de retenção ou de tratamento de dados que se aplica a uma ou mais sessões no intervalo solicitado ainda não pôde ser avaliada. Nos endpoints de recuperação e de mensagens, ele dizfor this sessionem vez defor this page. Ele depende dos dados e das configurações da organização que executou a sessão em vez da carga, e pode persistir por um período prolongado.
Correção: Trate cada corpo da seguinte forma:
- Para os dois corpos
Try again shortly., tente novamente com backoff exponencial e não avance seu cursorpage, porque a requisição que falhou não retornou dados. - Se o corpo
Captured contentcontinuar se repetindo no endpoint de mensagens para uma organização que usa uma chave gerenciada pelo cliente, trate-o como persistente: pare de percorrer as transcrições dessa organização e verifique o status da chave no seu serviço de gerenciamento de chaves. As transcrições em outras organizações vinculadas, e os metadados de sessões em todos os lugares, não são afetados. Se você tentar novamente em uma execução posterior, reinicie o percurso de cada sessão sempage, porque os cursores de página de mensagens expiram 24 horas após a primeira página do percurso. - Para o corpo
Try again later., não mantenha um percurso aberto esperando que ele seja resolvido. No endpoint de listagem, tente novamente mais tarde reiniciando sem o parâmetropage(um token de página de listagem com mais de 24 horas ainda é aceito, mas é reavaliado em relação ao limite de retenção atual, portanto um percurso pausado pode pular sessões), ou restrinja a janelacreated_at.gteecreated_at.ltaté que a requisição seja bem-sucedida e exporte o intervalo pulado separadamente em uma execução posterior. Nos endpoints de recuperação e de mensagens, pule esse ID de sessão, continue com o restante da sua exportação e tente novamente a sessão em uma execução posterior. Os cursores de página de mensagens expiram 24 horas após a primeira página do percurso, portanto reinicie o percurso dessa sessão sempagequando retornar a ela.
Se qualquer uma dessas condições se repetir entre execuções, entre em contato com seu representante da Anthropic e inclua o cabeçalho de resposta request-id. Para o caso da chave gerenciada pelo cliente, faça isso apenas se o erro continuar enquanto sua chave estiver utilizável.
Para incidentes em todo o serviço, verifique status.anthropic.com.
Próximos passos
Perguntas comuns sobre acesso, escopos, retenção e integração.
O catálogo de erros de toda a plataforma e a semântica de novas tentativas.
Was this page helpful?