Tratar erros da Compliance API
Respostas de erro da Compliance API por código de status HTTP, com a causa e a correção para cada uma.
Esta página lista as respostas de erro comuns da Compliance API por código de status HTTP, com a causa e a correção para cada uma.
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": "permission_error",
"message": "Missing required scopes. Got: ['read:compliance_activities'] Needed one of: ['read:compliance_user_data', 'read:org_audit']"
}
}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 pelo código de status HTTP e 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 códigos de status e os valores de tipo fazem parte do contrato da API. Algumas respostas que compartilham um código de status e um tipo são diferenciadas por um código de erro em error.details.error_code quando a resposta o inclui e, caso contrário, por sua 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, ou habilite a Compliance API se a mensagem disser que ela não está habilitada, e então reenvie. Se error.details.error_code for transcript_page_read_limit_exceeded (a mensagem diz que uma página da transcrição de uma sessão é grande demais para ser lida), não reenvie a mesma requisição; Página de transcrição grande demais diz o que fazer em vez disso. |
| 401 Unauthorized | Não | A chave não é reconhecida, foi desativada ou expirou; reative-a ou substitua-a e então reenvie. |
| 403 Forbidden | Não | Adicione o escopo ausente ou use o tipo de chave correto e então reenvie. |
| 404 Not Found | Geralmente não | Uma mensagem que nomeia um recurso significa que ele foi excluído ou nunca existiu; remova-o da sua fila. A mensagem simples Not found significa que a requisição não foi autenticada (ou que o caminho não existe), e não que um recurso deixou de existir; consulte Requisição não autenticada. Os endpoints de sessão adicionam mais dois casos: nos endpoints de sessão local, 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, e não que uma sessão deixou de existir; mantenha os IDs na sua fila e consulte Sessão local não encontrada. Uma sessão remota ainda com 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 entra em conflito com o estado atual do recurso; resolva o conflito (por exemplo, desanexando recursos filhos) e então tente novamente. |
| 429 Too Many Requests | Sim, após retry-after | Aguarde os segundos indicados em retry-after e então 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ão local não são transitórios. Consulte Sessões locais temporariamente indisponíveis. |
400 Bad Request
A requisição era sintaticamente válida, mas o servidor rejeitou um parâmetro ou a Compliance API não está habilitada para a organização. Corrija a causa indicada na mensagem e reenvie. Um 400 é diferente: Página de transcrição grande demais, que o endpoint de mensagens de sessões locais pode retornar para uma página de uma sessão muito grande mesmo quando todos os parâmetros são válidos; sua entrada diz o que fazer em vez de reenviar.
Compliance API não habilitada
Tipo: invalid_request_error
Compliance API is not enabled for this organizationCausa: A chave é válida, mas a Compliance API não está habilitada para a organização ou organização pai à qual a chave pertence. Todos os endpoints retornam esta resposta até que a API seja habilitada, e novamente se um administrador desativar a API.
Correção: Habilite a Compliance API seguindo Configurar a Compliance API e então reenvie a requisição.
Parâmetro de consulta desconhecido
Tipo: invalid_request_error
Unknown query parameter: 'created_at[gte]'. Did you mean 'created_at.gte'?Causa: A requisição incluiu um "query parameter" (parâmetro de consulta) que o endpoint não define; a Compliance API rejeita parâmetros não reconhecidos em vez de ignorá-los. A mensagem nomeia o parâmetro e, para quase acertos, como notação de colchetes no lugar de um ponto ou um sufixo [] ausente, sugere o nome definido.
Correção: Use os nomes de parâmetros mostrados na página de referência da Compliance API do endpoint. Filtros de intervalo usam notação de ponto (por exemplo, created_at.gte), filtros de array recebem um sufixo [] (por exemplo, activity_types[]), e os parâmetros de paginação são after_id, before_id ou page, dependendo do endpoint.
Valor de parâmetro inválido
Tipo: invalid_request_error
limit: Input should be less than or equal to 1000created_at.gte: Input should be a valid datetime or date, invalid character in yearactivity_types[].0: Input is not one of the permitted values.Causa: O valor de um parâmetro de consulta falhou na validação. A mensagem começa com o nome do parâmetro (seguido da posição do elemento, no caso de um parâmetro de array) e então informa a restrição que falhou. Três casos comuns são mostrados: um limit acima do máximo do endpoint (o número na mensagem é o máximo desse endpoint), um valor created_at.* ou updated_at.* que não pode ser interpretado como data ou timestamp, e um valor activity_types[] que não é um tipo de atividade suportado.
Correção: Corrija o parâmetro indicado na mensagem. 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. Envie timestamps no formato RFC 3339 com um deslocamento UTC explícito, por exemplo, 2024-03-01T00:00:00Z ou 2024-03-01T00:00:00+00:00; a listagem de sessões locais rejeita um timestamp sem deslocamento (created_at.gte: Input should have timezone info). Para os valores de activity_types[] suportados, consulte Consultar atividades de conformidade.
A listagem de sessões locais (GET /v1/compliance/apps/sessions/local) também retorna um 400 invalid_request_error quando você fornece um limite inferior (created_at.gte ou created_at.gt) e um limite superior (created_at.lt ou created_at.lte) e o limite superior não é posterior ao limite inferior. Limites iguais são permitidos apenas para created_at.gte com created_at.lte. A mensagem nomeia os dois parâmetros, por exemplo:
created_at.lt must be strictly after created_at.gte.created_at.lte must be at or after created_at.gte.Envie um limite superior posterior ao limite inferior ou omita um dos limites.
Os endpoints de transcrição de sessão (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 positiva de bytes ou -1 (o máximo do servidor), portanto um valor como 0 retorna o mesmo 400 invalid_request_error.
Cursor de paginação inválido
Tipo: invalid_request_error
Invalid activity_id format: 'activity_invalid123'Invalid pagination cursor for 'after_id'Causa: Um "pagination cursor" (cursor de paginação) não pôde ser decodificado. No Activity Feed, um valor after_id ou before_id que não é nem um cursor emitido pela API nem um ID de atividade bem formado retorna o primeiro corpo, que ecoa o valor enviado. Nos endpoints de chat e de mensagens de chat, um valor after_id ou before_id que não pode ser decodificado retorna o segundo corpo, que nomeia o parâmetro.
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, projeto e sessão (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ão, 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, com uma mensagem específica do endpoint.
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).
Página de transcrição grande demais
Tipo: invalid_request_error
Código de erro: transcript_page_read_limit_exceeded, retornado em error.details.error_code
This page of the session's transcript is too large to read, and retrying will not help. If you are reading newest first (order=desc), read this session oldest first instead: omit the order and page parameters, then follow next_page.Causa: GET /v1/compliance/apps/sessions/local/{session_id}/messages pode retornar este erro para uma página de uma sessão muito grande. Somente este endpoint retorna este erro. Ele compartilha o tipo invalid_request_error com os outros 400, portanto identifique-o pelo código de erro, não pelo texto da mensagem, que pode ser reformulado.
Correção: Não tente a requisição novamente. Se ela usou order=desc, leia essa sessão da mais antiga para a mais recente:
- Reinicie o percurso da sessão (uma passagem por suas páginas; consulte Recuperar a transcrição de uma sessão local) sem
order(ou comorder=asc) e sempage, e siganext_pageaté que sejanull. As mensagens que você já armazenou da leitura da mais recente para a mais antiga mantêm o mesmoid, portanto elimine duplicatas porid. - Defina o tempo limite de requisição do seu cliente para pelo menos 5 minutos para esse percurso.
- Reduzir
limitnão é uma forma confiável de evitar este erro.
Se uma requisição da mais antiga para a mais recente retornar este erro, também não tente novamente. Mantenha as páginas que você já leu, registre a sessão como incompleta, continue com o restante da sua exportação e entre em contato com seu representante da Anthropic informando o cabeçalho de resposta request-id.
401 Unauthorized
A requisição continha uma Compliance Access Key (sk-ant-api01-...) ou uma chave de Admin API (sk-ant-admin01-...) que não autentica. Uma requisição sem chave, ou com uma chave de outro tipo, retorna 404 Not Found em todos os endpoints, exceto o de configurações da organização, e uma chave válida com os escopos errados retorna 403 Forbidden.
Chave de API inválida, desativada ou expirada
Tipo: authentication_error
API key is invalid.API key has been deactivated.API key has expired.Causa: API key is invalid. significa que o valor enviado não corresponde a uma chave utilizável, por exemplo, porque foi truncado ou alterado ao ser armazenado. API key has been deactivated. significa que a chave foi desabilitada ou excluída. API key has expired. significa que a data de expiração de uma chave de Admin API já passou; Compliance Access Keys não são criadas com uma data de expiração.
Correção: Para API key is invalid., compare o valor que seu cliente envia com o segredo que você armazenou quando a chave foi criada; o segredo completo é exibido apenas uma vez, portanto, se sua cópia armazenada estiver errada, crie uma nova chave. Para API key has been deactivated., reative a chave se ela foi apenas desabilitada, em claude.ai > Organization settings > API para uma Compliance Access Key ou na página Admin keys (platform.claude.com/settings/admin-keys) no Claude Console para uma chave de Admin API; uma chave excluída não pode ser restaurada. Para uma chave excluída ou expirada, crie uma nova chave e atualize sua integração para usá-la, conforme descrito em Gerenciar e rotacionar chaves.
403 Forbidden
A chave em x-api-key é válida, mas não possui um "scope" (escopo) que o endpoint aceite. A mensagem literal lista os escopos que a chave possui (Got:) e os escopos que o endpoint aceita (Needed one of: em endpoints de leitura, onde qualquer um dos escopos listados é suficiente, ou Needed: em endpoints de exclusão), para que você possa confirmar o que a chave possui sem verificar novamente o Claude Console ou o claude.ai. Em endpoints de leitura, a lista de escopos aceitos também inclui read:org_audit, um escopo de auditoria somente leitura que abrange todos os endpoints de leitura da Compliance API; consulte Escolher escopos para uma chave do Claude Enterprise. 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 (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
Tipo: permission_error
Missing required scopes. Got: ['read:compliance_user_data'] Needed one of: ['read:compliance_activities', 'read:org_audit']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
Tipo: permission_error
Missing required scopes. Got: ['read:compliance_user_data'] Needed one of: ['read:compliance_org_data', 'read:org_audit']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
Tipo: permission_error
Missing required scopes. Got: ['read:compliance_org_settings'] Needed one of: ['read:compliance_org_data', 'read:org_audit']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
Tipo: permission_error
Missing required scopes. Got: ['read:compliance_activities'] Needed one of: ['read:compliance_user_data', 'read:org_audit']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
Tipo: 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
Um 404 cuja mensagem nomeia um recurso ou um tipo de recurso significa que o ID no caminho 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 conhecido anteriormente geralmente significa que o conteúdo deixou de existir: excluído permanentemente por meio de uma chamada de exclusão da Compliance API, removido por uma política de retenção ou, no caso de arquivos e artefatos, excluído junto com seu chat por um usuário no claude.ai. Um 404 com a mensagem simples Not found é diferente: a requisição não foi autenticada (ou o caminho não existe), e qualquer endpoint pode retorná-lo, incluindo endpoints de listagem; consulte Requisição não autenticada. Os endpoints de sessão adicionam dois casos. Nos endpoints de sessão local, uma mensagem 404 separada, Local sessions are not available., é retornada em todas as chamadas (incluindo a listagem) enquanto os endpoints estiverem 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ão remota, 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é que a sessão seja 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 conformidade para ver todos os valores suportados.
Requisição não autenticada
Tipo: not_found_error
Not foundCausa: A requisição não continha uma credencial aceita pela Compliance API: nenhuma chave de API foi enviada, ou a chave não é uma Compliance Access Key (sk-ant-api01-...) nem uma chave de Admin API (sk-ant-admin01-...), por exemplo, uma chave de API do Claude (sk-ant-api03-...). O status, o tipo e a mensagem são os mesmos de um caminho que não existe e não dependem do endpoint nem de qualquer ID de recurso, portanto endpoints de listagem como GET /v1/compliance/activities também retornam este corpo. A única exceção é GET /v1/compliance/organizations/{organization_id}/settings, que responde a essas requisições com 401 authentication_error. Em todos os endpoints, uma Compliance Access Key ou chave de Admin API que não autentica retorna 401 Unauthorized.
Correção: Envie a chave no cabeçalho x-api-key e verifique seu prefixo: a Compliance API aceita apenas chaves sk-ant-api01-... e sk-ant-admin01-...; consulte De qual chave você precisa?. Se o cabeçalho e a chave estiverem corretos e um caminho ainda retornar Not found enquanto outros funcionam, verifique esse caminho na referência da Compliance API.
Chat não encontrado
Tipo: not_found_error
Chat conversation not found: 'claude_chat_01H5CWunD7RpVJ5bHa8RCkja'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
Tipo: not_found_error
File not found: 0d3b8f72-6c1e-4a59-b2de-7f4c9a1e5b60Causa: O ID do arquivo não existe em uma organização que sua chave pode ler, ou o arquivo foi excluído. Excluir um chat no claude.ai também exclui os arquivos anexados a ele, embora o próprio chat continue listado. A mensagem identifica o arquivo pelo seu UUID subjacente, e não pelo ID claude_file_... enviado na requisição. Os endpoints de metadados, conteúdo e exclusão retornam este corpo; ele se aplica tanto a arquivos anexados a chats (claude_file_...) quanto a arquivos de projetos.
Correção: Faça a reconciliação com atividades claude_file_uploaded ou claude_file_deleted recentes. Arquivos excluídos junto com um chat não têm atividade claude_file_deleted, portanto verifique também a atividade claude_chat_deleted do chat. Se o arquivo foi excluído, o binário deixou de existir; os registros de atividade permanecem no feed durante a janela de retenção de 6 anos.
Arquivo gerado ou artefato não encontrado
Tipo: not_found_error
Generated file not found: 'claude_gen_file_01TbR8wAcCeFhJkLnPqStUvX'Generated file content not found: 'claude_gen_file_01TbR8wAcCeFhJkLnPqStUvX'Artifact version not found: 'claude_artifact_version_01KmNpQrSt3UvWxYz5AbCdEfG'Causa: O ID no caminho não corresponde a um arquivo gerado por ferramenta ou a uma versão de artefato legível por meio da Compliance API. O endpoint de metadados de arquivo gerado retorna o primeiro corpo, o endpoint de conteúdo retorna o segundo, e ambos os endpoints de artefato retornam o terceiro. Arquivos gerados e artefatos são excluídos junto com o chat em que foram criados, inclusive quando um usuário exclui o chat no claude.ai.
Correção: Use Obter mensagens do chat para localizar o chat de onde o ID veio. Se o deleted_at do chat estiver preenchido, ou se uma atividade claude_chat_deleted nomear o chat, o conteúdo deixou de existir; remova o ID da sua fila. Caso contrário, confirme o ID com os arrays generated_files e artifacts nas mensagens do chat.
Projeto não encontrado
Tipo: not_found_error
No project is found with the provided id.No project found with provided id, or it has already been deleted.Causa: O ID do projeto não existe ou foi excluído. Os endpoints de detalhes, anexos e colaboradores do projeto retornam o primeiro corpo; DELETE /v1/compliance/apps/projects/{project_id} retorna o segundo.
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
Tipo: not_found_error
No project document found with the provided id.No project document found with the provided id, or it has already been deleted.Causa: O ID do documento de projeto não existe ou foi excluído. Os endpoints de conteúdo e metadados do documento retornam o primeiro corpo; DELETE /v1/compliance/apps/projects/documents/{document_id} retorna o segundo. Este erro se aplica a documentos de texto de projetos (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. O registro de atividade mostra quem enviou o documento, quando e para qual projeto, mas não o seu nome.
Sessão local não encontrada
Tipo: 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
Tipo: 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
Tipo: 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
Tipo: 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 entra em conflito com o estado atual do recurso. O corpo tem o tipo invalid_request_error, que as respostas 400 também usam, portanto diferencie um conflito pelo código de status 409, e não por error.type.
Projeto tem chats anexados
Tipo: invalid_request_error
The "claude_proj_01KGp4eZNug9ri4kE35RSppq" project cannot be deleted as it has chats attached to it. Delete or detach all chats, and try deleting the project again.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.
Um 429 é diferente: em uma sessão muito grande, o endpoint de mensagens de sessões locais pode retornar Servidor ocupado lendo transcrições grandes, que não é um "rate limit" (limite de taxa) nem um limite da sua organização. A entrada correspondente, no final desta seção, explica como identificá-lo e o que fazer.
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 têm um segundo orçamento de requisições, vinculado à sua organização pai assim como o limite compartilhado, além dele. Um 429 desse orçamento inclui 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, e não esse orçamento, então use backoff exponencial se o 429 se repetir. Um 429 não vem de nenhum orçamento de requisições: Servidor ocupado lendo transcrições grandes, que apenas o endpoint de mensagens de sessões locais retorna.
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.
Servidor ocupado lendo transcrições grandes
Tipo: rate_limit_error
Código de erro: transcript_read_server_busy, retornado em error.details.error_code
Too many large session transcripts are being read at once. This is not a limit on your organization. Retry this request after the number of seconds in the retry-after header.Causa: GET /v1/compliance/apps/sessions/local/{session_id}/messages pode retornar este 429 para uma página de uma sessão muito grande. Apenas este endpoint retorna este erro, e ele pode ocorrer com qualquer valor de order. Não é um limite de taxa nem um limite da sua organização: não significa que você excedeu o limite compartilhado ou qualquer outro orçamento de requisições. Este erro compartilha o código de status 429 e o tipo rate_limit_error com as respostas de limite de taxa, então identifique-o pelo código de erro, e não pelo texto da mensagem, que pode ser reformulado.
Correção: Aguarde o número de segundos indicado no cabeçalho retry-after e envie a mesma requisição novamente, sem alterações: mantenha o mesmo valor de page, ou nenhum, se a requisição não tinha. Se a nova tentativa retornar este erro novamente, aguarde e tente de novo da mesma forma. Se o cabeçalho retry-after estiver ausente, recorra ao backoff exponencial (comece com 1 segundo, dobrando até 60 segundos). Se este erro continuar ocorrendo em várias execuções, entre em contato com seu representante da Anthropic e inclua o cabeçalho de resposta request-id.
500 Internal Server Error
Um 500 da Compliance API inclui um cabeçalho de resposta x-should-retry: false quando a falha é determinística. O Claude SDK respeita 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 este 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
Tipo: 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 do backend. 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 gerenciada pelo cliente não consegue descriptografar, por exemplo, porque você desabilitou, revogou ou destruiu a chave, ou porque a chave não pode ser acessada. Nesse caso, o erro persiste enquanto a chave não puder ser usada. O texto da mensagem é o mesmo em ambos os casos, então o único sinal de que a chave é a causa é que o erro continua se repetindo para aquela organização. Uma chave inutilizável nunca é relatada 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. Isso depende dos dados e das configurações da organização que executou a sessão, e não 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_ataté 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. No caso da chave gerenciada pelo cliente, faça isso somente se o erro continuar enquanto essa 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?