Índice
Ao trabalhar com o Claude Code ou com a API da Anthropic, de repente seu fluxo pode travar com um erro assim:
API Error: 400 Output blocked by content filtering policy
# A resposta bruta tem esta forma:
{"type":"error","error":{"type":"invalid_request_error",
"message":"Output blocked by content filtering policy"}}
“A saída foi bloqueada pela política do filtro de conteúdo” — ou seja, não foi a sua entrada, mas o output que o Claude tentou retornar que foi barrado no meio do caminho pelo filtro de segurança da Anthropic. O status HTTP é 400 e o tipo é invalid_request_error. Não é limite de uso nem estouro de contexto: o que ficou preso foi “o que ele tentou produzir como saída”.
Primeiro, três pontos-chave. ① A causa é quase sempre a detecção de que você tentou “reproduzir uma obra já existente” tal e qual. O Claude é pensado para gerar conteúdo novo, e há um mecanismo de segurança que impede a cópia literal de textos existentes. ② Mas os falsos positivos (false positive) são muitos — gerar o texto de licenças padrão como MIT/Apache, ou trabalhos que exigem “fazer bater” com uma página existente, disparam o filtro mesmo sem má intenção. ③ O cerne da solução é “não deixar o modelo copiar palavra por palavra” — obtenha licenças e afins por ferramentas, oriente o prompt para “transformar, resumir, gerar do zero” e, se cair num loop de retentativas, pare uma vez e reformule. Neste artigo, com base em informações oficiais e relatos reais de bugs, organizamos a causa, os padrões de falso positivo, as formas de resolver e a diferença em relação a erros parecidos.
Onde exatamente ele trava
— não é a entrada, mas a “saída” que o filtro barra
O que trava é a etapa ③, a de saída. Não é entrada longa demais (Prompt is too long) nem limite de uso.
Saídas que “criam algo novo” passam; saídas que “copiam algo existente palavra por palavra” tendem a ficar presas.
1. O que esse erro está dizendo
A API da Anthropic tem um sistema de segurança que verifica tanto a entrada (o que você envia) quanto a saída (o que o Claude retorna). Output blocked by content filtering policy significa, como o nome diz, que o filtro do lado da “saída” barrou o conteúdo que o Claude tentava retornar. A resposta da API volta como HTTP 400 / invalid_request_error, e no Claude Code a sessão exibe API Error: 400 Output blocked by content filtering policy e para.
Ponto importante: isso é diferente de “o modelo recusar educadamente no meio da conversa (refusal)”. A recusa volta como texto, mas este 400 faz com que a própria chamada de API vire erro. Por isso o Claude Code não recebe resposta e o processamento é interrompido.
O crucial é que isto não é um “bug”, e sim o “acionamento de um mecanismo de segurança”. Portanto, não é do tipo que “reiniciar resolve”: o caminho correto é revisar o que você tentou fazer o modelo produzir. Dito isso, como veremos, os falsos positivos são bastante frequentes, então, quando ele aparece num trabalho legítimo, na maioria das vezes dá para contornar reformulando ou mudando de método.
2. Por que ele aparece — o mecanismo que impede a “reprodução” de obras protegidas
Segundo a explicação oficial da Anthropic, o objetivo principal desse filtro é “não deixar reproduzir/regurgitar (regurgitate) material já existente tal e qual”. A empresa posiciona o papel do Claude como “gerar conteúdo e ideias novos, e não reproduzir conteúdo já existente” e, além disso, aponta uma política que proíbe usos que infrinjam direitos de propriedade intelectual.
Ou seja, o filtro tende a disparar quando julga que a saída “se assemelha muito a uma cópia literal de um texto que já existe no mundo”. Em concreto, são casos como estes.
Pedir para “escrever tal e qual” o texto completo de licenças como MIT / Apache-2.0 / BSL / MPL, ou códigos de conduta e templates padrão, é facilmente julgado como cópia literal de algo existente.
Instruções que copiam algo externo já existente, como “corrija o arquivo para que fique exatamente igual a este material online” ou “reproduza conforme o artigo original”.
Citações extensas / reprodução integral de documentação de API, livros ou artigos já existentes. Resumir ou reestruturar costuma passar, mas a cópia literal fica presa.
Atenção: a empresa também deixa explícito que “se este aviso aparecer porque você realmente está tentando extrair obras protegidas, a repetição pode levar a avisos e à suspensão ou encerramento da conta”. Não use isso para contornar o filtro com o objetivo de copiar deliberadamente. O que tratamos aqui é apenas o caso de falso positivo em trabalho legítimo.
3. Padrões comuns de falso positivo (false positive)
A própria Anthropic reconhece a existência de falsos positivos, admitindo que “há usuários que se deparam com essa recusa/erro mesmo sem intenção de duplicar”. De fato, nas issues do Claude Code há muitos relatos de disparo em tarefas “sem nenhuma má intenção”, como as seguintes.
Trava na configuração clássica de criar arquivos como LICENSE, configs de CI e arquivos de saúde da comunidade (CODE_OF_CONDUCT etc.).
No meio de uma tarefa de comparação como “confronte com a lista online e corrija as diferenças”, a saída se aproxima da lista existente e dispara.
Há casos em que, após 1 a 2 horas rodando, ele para com 400 e o problema é diagnosticado por engano como “limite de tokens”. Na verdade, a causa é o filtro de saída.
Mania conhecida do lado do Claude Code: ao receber esse erro, ele pode entrar num loop de retentativas em que refaz a mesma saída várias vezes e não consegue avançar. Ele fica em loop por muito tempo sem gerar nenhum arquivo, e é fácil confundir a causa. Ao perceber o loop, pare manualmente antes de qualquer coisa (próximo capítulo).
4. Como resolver agora mesmo
A resposta muda conforme seja um caso de “o mecanismo de segurança agiu corretamente” ou de “falso positivo”, mas, se for um trabalho legítimo, a ordem a seguir contorna o problema com alta probabilidade.
Para o texto completo padrão de licenças e afins, não faça o modelo escrever: obtenha por ferramentas. Ex.: npx license mit, colar a partir do choosealicense.com, indicar um template com gh repo create.
Em vez de “reproduza tal e qual”, mude para “resuma”, “reestruture”, “reescreva com suas próprias palavras”, “mostre só as diferenças”. Só de não exigir correspondência literal, muitas vezes passa.
Se o Claude Code continuar tentando a mesma saída, interrompa com Esc. Não reenvie a mesma instrução: reformule antes de retomar.
Para isolar qual saída é o gatilho, quebre a grande geração de uma vez em partes menores. Comparar a configuração que funciona variando um fator por vez facilita identificar a causa.
Se aparecer repetidamente mesmo em trabalho legítimo, procure o suporte da Anthropic. A empresa também recebe bem feedback para melhorar o filtro.
Exemplos de reformulação (mesmo objetivo, mas passa mais fácil)
❌ “Escreva no LICENSE o texto completo da licença MIT tal e qual”
✅ “Quero criar um LICENSE. Execute npx license mit para gerar”
❌ “Cole esta documentação oficial palavra por palavra, exatamente igual”
✅ “Leia esta documentação oficial e resuma os pontos principais
em tópicos, com suas próprias palavras. Não precisa copiar o
texto original literalmente”
5. Como distinguir de erros parecidos
Mesmo que o resultado seja o mesmo “travou”, a causa pode ser identificada pela mensagem. Separe pelo status ou pelas palavras-chave.
| Mensagem / tipo | Causa real | Solução |
|---|---|---|
| Output blocked by content filtering policy (400) | A saída foi julgada reprodução de obra protegida existente | Evitar cópia literal, reformular / obter por ferramenta |
| Prompt is too long (400) | A entrada excedeu a janela de contexto | /compact・/clear (explicação) |
| usage limit reached | A cota de uso do plano se esgotou | Esperar o reset / plano superior (explicação) |
| 529 Overloaded / 500 | Sobrecarga ou falha temporária do lado do servidor | Aguardar e tentar de novo (explicação) |
| A saída é cortada no meio | Atingiu o limite de saída de max_tokens |
Aumentar o limite de saída / gerar em partes |
Na dúvida, o mais seguro é julgar pela própria string da mensagem. Se aparecer content filtering policy, é o assunto deste artigo; se for too long, é estouro de entrada; se for usage limit, é cota esgotada. Os erros do Claude Code em geral também estão reunidos em Erros comuns do Claude Code e como resolvê-los.
6. Checklist para evitar recorrência
- Licenças e documentos padronizados: não faça o modelo escrever; obtenha por ferramentas ou templates
- Para algo existente, peça “resuma / reestruture / com suas próprias palavras” em vez de “reproduza”
- Tire do prompt expressões como “palavra por palavra”, “tal e qual”, “exatamente igual”
- Quebre a grande geração de uma vez em partes menores, para conseguir isolar a saída que serve de gatilho
- Se travar com 400, leia primeiro a string da mensagem — evita confundir a causa (diagnosticar por engano como limite de tokens)
- Ao perceber o loop de retentativas, pare com Esc e reformule antes de retomar
- Falsos positivos em trabalho legítimo: reporte ao suporte e contribua para melhorar o filtro
Conclusão
API Error: 400 Output blocked by content filtering policy significa que não é limite de uso nem estouro de contexto: o filtro de segurança barrou a “saída” que o Claude tentava retornar. O foco está em impedir a reprodução literal de obras protegidas existentes, e em tarefas como gerar licenças padrão ou “fazer bater com algo existente” é comum haver falso positivo sem má intenção. O cerne da solução é simples: não deixar o modelo copiar tal e qual, e substituir por geração, resumo ou obtenção via ferramenta. E, se travar com 400, leia primeiro a string da mensagem para não confundir a causa — só isso já faz a maior parte dos casos voltar a avançar.
FAQ
P. Isso significa que minha conta foi advertida?
R. Se for um falso positivo isolado, não. Mas a empresa deixa explícito que, se você insistir de fato em extrair obras protegidas, pode haver aviso e suspensão da conta. Não é preciso se alarmar com uma única ocorrência num trabalho legítimo.
P. Não conseguir nem escrever uma licença MIT não é inconveniente?
R. O texto completo de uma licença é “texto padrão já existente”, então, em vez de fazer o modelo copiá-lo tal e qual, é mais rápido e confiável obtê-lo com npx license mit ou pelo choosealicense.com. Também evita o falso positivo.
P. Qual a diferença em relação ao limite de tokens (Prompt is too long)?
R. São completamente diferentes. too long é sobre o tamanho da entrada exceder a janela, e se resolve com /compact etc. Este content filtering policy é sobre o conteúdo da saída, e reduzir o tamanho não resolve. Mais detalhes aqui.
P. Faça o que fizer, ele trava num trabalho legítimo. O que fazer?
R. Se, mesmo reformulando o prompt para o lado de geração/resumo e dividindo a tarefa, ele reincidir, reporte ao suporte da Anthropic incluindo o request id. O filtro continua sendo aprimorado, e compartilhar os falsos positivos é o caminho mais curto para a solução.