Sommaire
- 1. Que signifie réellement cette erreur
- 2. Pourquoi elle survient — le mécanisme qui bloque la « reproduction » d'œuvres protégées
- 3. Les cas fréquents de faux positifs (false positive)
- 4. Comment résoudre le problème tout de suite
- 5. Comment la distinguer des erreurs qui prêtent à confusion
- 6. Checklist de prévention
- Conclusion
- FAQ
En travaillant avec Claude Code ou l'API Anthropic, il arrive que tout s'arrête brutalement sur une erreur de ce genre :
API Error: 400 Output blocked by content filtering policy
# La réponse brute ressemble à ceci :
{"type":"error","error":{"type":"invalid_request_error",
"message":"Output blocked by content filtering policy"}}
« La sortie a été bloquée par la politique de filtrage de contenu » — autrement dit, ce n'est pas votre entrée, mais la sortie que Claude s'apprêtait à renvoyer que le filtre de sécurité côté Anthropic a interrompue en cours de route. Le statut HTTP est 400, le type est invalid_request_error. Il ne s'agit ni d'une limite d'usage ni d'un dépassement de contexte : ce qui coince, c'est « ce que le modèle a tenté de produire ».
Commençons par trois points clés. ① La cause est presque toujours le verdict « tentative de reproduction telle quelle d'une œuvre existante ». Claude est conçu pour créer du contenu nouveau, et un mécanisme de sécurité empêche la copie intégrale d'un texte existant. ② Mais les faux positifs (false positive) sont nombreux — la génération du texte d'une licence standard comme MIT/Apache, ou un travail visant à « faire correspondre » un contenu à une page existante, peuvent déclencher l'erreur sans la moindre mauvaise intention. ③ Le cœur de la solution est de « ne pas faire copier mot à mot au modèle » — récupérez les licences et autres via un outil, orientez vos prompts vers la « transformation, le résumé, la génération nouvelle », et si vous tombez dans une boucle de nouvelles tentatives, arrêtez-la et reformulez. Dans cet article, nous faisons le point, sur la base des informations officielles et des rapports d'incidents réels, sur les causes, les cas de faux positifs, les solutions, et les différences avec des erreurs similaires.
Où le blocage se produit-il
— ce n'est pas l'entrée, mais la « sortie » que le filtre interrompt
Ce qui bloque, c'est l'étape de sortie ③. Ce n'est ni une entrée trop longue (Prompt is too long), ni une limite d'usage.
Les sorties qui « créent du nouveau » passent, celles qui « recopient un contenu existant » ont tendance à être bloquées.
1. Que signifie réellement cette erreur
L'API d'Anthropic dispose d'un système de sécurité qui vérifie à la fois l'entrée (ce que vous envoyez) et la sortie (ce que Claude renvoie). Output blocked by content filtering policy signifie, comme son nom l'indique, que le filtre côté « sortie » a interrompu le contenu que Claude s'apprêtait à renvoyer. La réponse de l'API revient sous forme de HTTP 400 / invalid_request_error, et dans Claude Code la session s'arrête en affichant API Error: 400 Output blocked by content filtering policy.
À retenir : ce n'est pas la même chose qu'un « refus poli du modèle formulé dans la conversation » (refusal). Un refus revient sous forme de texte, tandis que ce 400 fait que l'appel API lui-même devient une erreur. Claude Code ne reçoit donc aucune réponse et le traitement est interrompu.
Le point important, c'est que il ne s'agit pas d'un « bug » mais du « déclenchement d'un mécanisme de sécurité ». Ce n'est donc pas le genre de problème qui « se règle en redémarrant » : la bonne approche consiste à revoir ce que l'on a demandé de produire. Cela dit, comme nous le verrons, les faux positifs sont assez fréquents, et quand l'erreur survient dans un travail parfaitement légitime, on peut presque toujours la contourner en reformulant ou en changeant de méthode.
2. Pourquoi elle survient — le mécanisme qui bloque la « reproduction » d'œuvres protégées
D'après l'explication officielle d'Anthropic, l'objectif principal de ce filtre est de « ne pas laisser reproduire ou régurgiter (regurgitate) tel quel du contenu existant ». Anthropic définit le rôle de Claude comme « produire du contenu et des idées nouvelles, plutôt que de reproduire du contenu existant », et invoque en outre une politique qui interdit les usages portant atteinte aux droits de propriété intellectuelle.
Le filtre a donc tendance à se déclencher lorsqu'il juge que la sortie est « très proche d'une copie mot à mot d'un texte qui existe déjà ». Concrètement, voici les cas typiques.
Demander de « recopier tel quel » le texte intégral d'une licence comme MIT / Apache-2.0 / BSL / MPL, ou un code de conduite ou un modèle standard, est facilement jugé comme la copie intégrale d'un contenu existant.
Des instructions qui recopient un contenu externe existant, du type « corrige ce fichier pour qu'il corresponde exactement à cette ressource en ligne » ou « reproduis-le à l'identique de l'article d'origine ».
La citation massive / republication intégrale d'une documentation d'API, d'un livre ou d'un article existant. Un résumé ou une reformulation passe plus facilement, mais la copie mot à mot est bloquée.
Attention : Anthropic précise aussi que « si cet avertissement apparaît alors que vous tentez réellement d'extraire une œuvre protégée, sa répétition peut entraîner des avertissements, la suspension ou la résiliation de votre compte ». Ne cherchez pas à contourner le filtre dans le but de copier intentionnellement. Ce dont nous parlons ici, ce sont uniquement les faux positifs survenant dans un travail légitime.
3. Les cas fréquents de faux positifs (false positive)
Anthropic reconnaît elle-même l'existence de faux positifs : « certains utilisateurs rencontrent ce refus / cette erreur sans aucune intention de copier ». De fait, les Issues de Claude Code contiennent de nombreux rapports d'erreurs déclenchées lors de travaux « sans la moindre mauvaise intention », comme les suivants.
Blocage lors de la configuration classique consistant à créer un fichier LICENSE, une configuration CI, ou des fichiers de santé communautaire (CODE_OF_CONDUCT, etc.).
Au cours d'une tâche de comparaison du type « compare avec la liste en ligne et corrige les écarts », la sortie se rapproche de la liste existante et déclenche l'erreur.
Il arrive aussi qu'après 1 à 2 heures d'exécution, l'agent s'arrête sur un 400 et que la cause soit diagnostiquée à tort comme une « limite de tokens ». En réalité, c'est le filtre de sortie qui est en cause.
Une particularité connue côté Claude Code : en recevant cette erreur, l'outil peut entrer dans une boucle de nouvelles tentatives où il réessaie sans cesse la même sortie, et rester bloqué sans avancer. Il peut boucler longtemps sans produire le moindre fichier, ce qui fait facilement se tromper de cause. Dès que vous remarquez la boucle, arrêtez-la manuellement — c'est la priorité (chapitre suivant).
4. Comment résoudre le problème tout de suite
La réponse diffère selon qu'il s'agit d'un « mécanisme de sécurité qui a correctement fonctionné » ou d'un « faux positif », mais pour un travail légitime, l'ordre suivant permet de contourner l'erreur avec une forte probabilité.
Le texte intégral standardisé d'une licence, ne le faites pas écrire par le modèle : récupérez-le via un outil. Exemples : npx license mit, coller depuis choosealicense.com, indiquer un modèle avec gh repo create.
Au lieu de « reproduis tel quel », passez à « résume », « restructure », « réécris avec tes propres mots », « ne sors que les différences ». Il suffit souvent de ne pas exiger une correspondance mot à mot pour que ça passe.
Si Claude Code continue de réessayer la même sortie, interrompez avec Esc. Ne relancez pas la même instruction : reformulez d'abord, puis reprenez.
Pour identifier quelle sortie déclenche l'erreur, découpez une grosse génération groupée en petits morceaux. Comparer à une configuration qui fonctionne, une variable à la fois, aide à isoler la cause.
Si l'erreur revient de façon répétée sur un travail légitime, contactez le support Anthropic. Anthropic accueille aussi les retours pour améliorer le filtre.
Exemples de reformulation (même objectif, mais passe plus facilement)
❌ « Écris le texte intégral de la licence MIT tel quel dans LICENSE »
✅ « Je veux créer un LICENSE. Exécute npx license mit pour le générer »
❌ « Colle cette documentation officielle mot pour mot »
✅ « Lis cette documentation officielle et résume les points clés
avec tes propres mots, sous forme de liste. Pas besoin de
recopier le texte d'origine mot à mot »
5. Comment la distinguer des erreurs qui prêtent à confusion
Même quand « ça s'est arrêté », la cause se distingue au message. Faites le tri à partir du statut et des mots-clés.
| Message / type | Vraie cause | Solution |
|---|---|---|
| Output blocked by content filtering policy (400) | La sortie jugée comme reproduction d'une œuvre existante | Éviter la copie mot à mot, reformuler / récupérer via un outil |
| Prompt is too long (400) | L'entrée dépasse la fenêtre de contexte | /compact・/clear (explications) |
| usage limit reached | Le quota d'usage du forfait est épuisé | Attendre le reset / forfait supérieur (explications) |
| 529 Overloaded / 500 | Surcharge ou panne temporaire côté serveur | Réessayer après un délai (explications) |
| La sortie est coupée en cours de route | La limite de sortie max_tokens est atteinte |
Augmenter la limite de sortie / générer par morceaux |
En cas de doute, le plus sûr est de trancher d'après la chaîne de caractères du message elle-même. S'il est écrit content filtering policy, c'est le sujet de cet article ; too long signale un dépassement d'entrée ; usage limit, un quota épuisé. Les erreurs de Claude Code en général sont également récapitulées dans Les erreurs fréquentes de Claude Code et leurs solutions.
6. Checklist de prévention
- Les licences et documents standardisés, ne les faites pas écrire par le modèle : récupérez-les via un outil ou un modèle
- Pour un contenu existant, demandez non pas de le « reproduire » mais de le « résumer, restructurer, avec vos propres mots »
- Retirez de vos prompts les termes « mot pour mot », « tel quel », « correspondre exactement »
- Découpez en petits morceaux les grosses générations groupées, afin de pouvoir isoler la sortie déclencheuse
- Si ça s'arrête sur un 400, lisez d'abord la chaîne du message — pour éviter de vous tromper de cause (diagnostic erroné en « limite de tokens »)
- Dès que vous remarquez une boucle de nouvelles tentatives, arrêtez-la avec Esc et reformulez avant de reprendre
- Signalez au support les faux positifs survenus sur un travail légitime, pour contribuer à l'amélioration du filtre
Conclusion
API Error: 400 Output blocked by content filtering policy signifie que ce n'est ni une limite d'usage ni un dépassement de contexte, mais que le filtre de sécurité a interrompu la « sortie » que Claude s'apprêtait à renvoyer. Son objet principal est d'empêcher la reproduction mot à mot d'œuvres existantes, et lors de la génération d'une licence standard ou d'un travail visant à « faire correspondre » un contenu existant, il produit souvent des faux positifs sans aucune mauvaise intention. Le cœur de la solution est simple : ne pas faire recopier au modèle, mais remplacer par de la génération, du résumé, ou une récupération via un outil. Et quand ça s'arrête sur un 400, lisez d'abord la chaîne du message pour ne pas vous tromper de cause — cela suffit à débloquer la plupart des situations.
FAQ
Q. Est-ce que cela veut dire que mon compte a reçu un avertissement ?
R. Si c'est un faux positif isolé, non. Anthropic précise toutefois que répéter les tentatives d'extraire réellement une œuvre protégée peut entraîner des avertissements ou une suspension de compte. Pas besoin de paniquer pour une seule occurrence lors d'un travail légitime.
Q. Ne pas pouvoir écrire ne serait-ce qu'une licence MIT, n'est-ce pas gênant ?
R. Le texte intégral d'une licence est un « texte standardisé existant » : plutôt que de le faire recopier au modèle, le récupérer via npx license mit ou depuis choosealicense.com est plus rapide et plus fiable. Et cela évite aussi le faux positif.
Q. Quelle différence avec la limite de tokens (Prompt is too long) ?
R. Rien à voir. too long concerne le fait que la taille de l'entrée dépasse la fenêtre, et se traite avec /compact ou similaire. Le content filtering policy dont il est question ici concerne le contenu de la sortie, et réduire la taille ne le corrige pas. Plus de détails ici.
Q. Quoi que je fasse, ça s'arrête sur un travail légitime. Que faire ?
R. Si l'erreur revient même après avoir reformulé le prompt vers de la génération / du résumé et découpé la tâche, signalez-le au support Anthropic en joignant le request id. Le filtre continue de s'améliorer, et le partage des faux positifs est le chemin le plus court vers la résolution.