Índice
- 1. Qué significa realmente este error
- 2. Por qué aparece: el mecanismo que frena la “reproducción” de obras protegidas
- 3. Patrones habituales de falso positivo (false positive)
- 4. Cómo solucionarlo ahora mismo
- 5. Cómo distinguirlo de errores parecidos
- 6. Checklist para evitar que se repita
- Conclusión
- FAQ
Trabajando con Claude Code o con la API de Anthropic, a veces todo se detiene de golpe con un error como este:
API Error: 400 Output blocked by content filtering policy
# La respuesta en crudo tiene esta forma:
{"type":"error","error":{"type":"invalid_request_error",
"message":"Output blocked by content filtering policy"}}
«La salida fue bloqueada por la política del filtro de contenido»: es decir, no es tu entrada, sino la salida que Claude intentaba devolver lo que el filtro de seguridad de Anthropic detuvo a mitad de camino. El estado HTTP es 400 y el tipo es invalid_request_error. No es un límite de uso ni un exceso de contexto: lo que se ha activado es «qué estabas intentando generar como salida».
Antes de nada, tres ideas clave. ① La causa es casi siempre que se detectó un intento de «reproducir» tal cual una obra ya existente. Claude está pensado para generar contenido nuevo, y cuenta con un mecanismo de seguridad que frena la copia literal de textos ya existentes. ② Pero hay muchos falsos positivos (false positive): generar el texto de licencias estándar como MIT/Apache, o tareas de «hacer coincidir» con una página ya existente, disparan el filtro aunque no haya ninguna mala intención. ③ El núcleo de la solución es «no hacer que el modelo copie palabra por palabra»: obtén las licencias y demás con herramientas, orienta el prompt hacia «transformar, resumir o generar de nuevo», y si caes en un bucle de reintentos, detente una vez y reformula. En este artículo, a partir de la información oficial y de reportes reales de fallos, organizamos las causas, los patrones de falso positivo, cómo arreglarlo y en qué se diferencia de errores parecidos.
¿Dónde se detiene?
— No es la entrada, sino la «salida» lo que el filtro detiene
Lo que se detiene es la fase de salida ③. No es que la entrada sea demasiado larga (Prompt is too long) ni un límite de uso.
La salida «que crea algo nuevo» pasa; la que «copia literalmente algo existente» tiende a activarse.
1. Qué significa realmente este error
La API de Anthropic tiene un sistema de seguridad que revisa tanto la entrada (lo que tú envías) como la salida (lo que Claude devuelve). Output blocked by content filtering policy significa, tal como dice, que el filtro del lado de la «salida» detuvo el contenido que Claude iba a devolver. La respuesta de la API llega como HTTP 400/invalid_request_error, y en Claude Code la sesión se detiene mostrando API Error: 400 Output blocked by content filtering policy.
Punto clave: esto es distinto de que «el modelo rechace la petición amablemente en un mensaje (refusal)». Un refusal llega como texto, pero este 400 hace que la propia llamada a la API resulte en un error. Por eso Claude Code no puede recibir respuesta y el proceso se interrumpe.
Lo importante es que esto no es un «bug», sino la «activación de un mecanismo de seguridad». Por tanto, no es de esas cosas que «se arreglan reiniciando»: la forma correcta de abordarlo es revisar qué estabas intentando que generara. Dicho esto, como veremos más adelante, hay bastantes falsos positivos, así que cuando aparece durante un trabajo legítimo, casi siempre se puede evitar reformulando o cambiando de método.
2. Por qué aparece: el mecanismo que frena la “reproducción” de obras protegidas
Según la explicación oficial de Anthropic, el objetivo principal de este filtro es «no dejar que se copie o reproduzca (regurgitate) tal cual material ya existente». La documentación oficial sitúa el papel de Claude como «generar contenido e ideas nuevas, no reproducir contenido existente» y, además, menciona una política que prohíbe los usos que infringen derechos de propiedad intelectual.
Es decir, el filtro tiende a activarse cuando juzga que la salida «se parece demasiado a una copia literal de un texto que ya existe en el mundo». En concreto, se dan casos como estos.
Pedir «escríbeme tal cual» el texto completo de licencias como MIT / Apache-2.0 / BSL / MPL, o códigos de conducta y plantillas estándar, suele ser juzgado como copia literal de una obra existente.
Instrucciones para calcar algo externo ya existente, como «corrige el archivo para que coincida exactamente con este material online» o «reprodúcelo igual que el artículo original».
La cita masiva o la reimpresión completa de documentación de API existente, libros o artículos. Un resumen o una reorganización pasan con facilidad, pero la copia literal se activa.
Atención: la documentación oficial también deja claro que «si esta advertencia aparece porque realmente estás intentando extraer una obra protegida, repetirlo puede acarrear advertencias y la suspensión o cierre de la cuenta». No intentes eludir el filtro con la intención de copiar literalmente. Aquí tratamos únicamente los falsos positivos en trabajos legítimos.
3. Patrones habituales de falso positivo (false positive)
La propia documentación oficial reconoce la existencia de falsos positivos: «hay usuarios que se topan con este rechazo/error sin ninguna intención de duplicar». De hecho, en los issues de Claude Code hay numerosos reportes de que se activó en trabajos «sin la menor mala intención», como los siguientes.
Se detiene en la configuración habitual de crear el archivo LICENSE, la configuración de CI y archivos de salud de la comunidad (CODE_OF_CONDUCT, etc.).
A mitad de una tarea de comparación como «coteja con la lista online y corrige las diferencias», la salida se acerca a la lista existente y se activa.
Tras correr 1 o 2 horas se detiene con un 400 y a veces se diagnostica erróneamente como «límite de tokens». En realidad la causa es el filtro de salida.
Una peculiaridad conocida de Claude Code: al recibir este error, a veces entra en un bucle de reintentos que repite una y otra vez la misma salida y no logra avanzar. Puede quedarse en bucle durante mucho tiempo sin generar ningún archivo, y es fácil confundir la causa. Si detectas el bucle, lo primero es detenerlo manualmente (siguiente sección).
4. Cómo solucionarlo ahora mismo
La respuesta cambia según si «el mecanismo de seguridad actuó correctamente» o si es «un falso positivo», pero en un trabajo legítimo puedes evitarlo con alta probabilidad siguiendo este orden.
En lugar de que el modelo escriba textos estándar como el de una licencia, obtenlos con una herramienta. Ejemplos: npx license mit, pegar desde choosealicense.com, o indicar una plantilla con gh repo create.
En vez de «reproduce tal cual», cámbialo a «resume», «reorganiza», «reescribe con tus propias palabras» o «muestra solo las diferencias». Con solo no exigir coincidencia literal, muchas veces pasa.
Si Claude Code sigue reintentando la misma salida, interrúmpelo con Esc. No vuelvas a lanzar la misma instrucción: reformúlala antes de retomar.
Para aislar qué salida es el detonante, divide la gran generación en bloques pequeños. Comparar una configuración que funciona variable a variable ayuda a identificar la causa.
Si aparece repetidamente en un trabajo legítimo, escribe al soporte de Anthropic. El equipo oficial también agradece el feedback para mejorar el filtro.
Ejemplos de reformulación (mismo objetivo, pero pasa con más facilidad)
❌ «Escribe el texto completo de la licencia MIT tal cual en LICENSE»
✅ «Quiero crear un LICENSE. Ejecuta npx license mit y genéralo»
❌ «Pega esta documentación oficial palabra por palabra»
✅ «Lee esta documentación oficial y resume los puntos clave
con viñetas, con tus propias palabras. No hace falta
la copia literal del original»
5. Cómo distinguirlo de errores parecidos
Aunque en todos «se detiene», la causa se puede identificar por el mensaje. Distínguela por el estado o las palabras clave.
| Mensaje / tipo | Causa real | Solución |
|---|---|---|
| Output blocked by content filtering policy (400) | La salida se juzga como reproducción de una obra existente | Evita la copia literal; reformula u obtén con herramientas |
| Prompt is too long (400) | La entrada supera la ventana de contexto | /compact・/clear (explicación) |
| usage limit reached | Se agotó la cuota de uso del plan | Esperar al reinicio / plan superior (explicación) |
| 529 Overloaded / 500 | Sobrecarga o fallo temporal del lado del servidor | Reintentar tras un tiempo (explicación) |
| La salida se corta a mitad | Se alcanzó el límite de salida de max_tokens |
Subir el límite de salida / generar por partes |
Si tienes dudas, lo más seguro es guiarte por la propia cadena del mensaje. Si pone content filtering policy, es de lo que trata este artículo; si pone too long, es un exceso de entrada; si pone usage limit, es que se agotó la cuota. Los errores de Claude Code en general están recopilados en Errores comunes de Claude Code y sus soluciones.
6. Checklist para evitar que se repita
- Las licencias y documentos estándar, no dejes que los escriba el modelo: obtenlos con herramientas o plantillas
- Con lo existente, pide «resumir, reorganizar, con tus propias palabras» en lugar de «reproducir»
- Elimina del prompt expresiones como «palabra por palabra», «tal cual» o «coincidir exactamente»
- Divide las grandes generaciones en bloques pequeños para poder aislar la salida detonante
- Si se detiene con un 400, lee primero la cadena del mensaje para evitar confundir la causa (diagnosticarlo erróneamente como límite de tokens)
- Si detectas un bucle de reintentos, detenlo con Esc y reformula antes de retomar
- Reporta los falsos positivos en trabajos legítimos al soporte para contribuir a mejorar el filtro
Conclusión
API Error: 400 Output blocked by content filtering policy significa que no es un límite de uso ni un exceso de contexto, sino que el filtro de seguridad detuvo la «salida» que Claude iba a devolver. Su foco está en evitar la reproducción literal de obras protegidas ya existentes, y en la generación de licencias estándar o en tareas de «hacer coincidir con algo existente» es frecuente que se produzca un falso positivo sin ninguna mala intención. El núcleo de la solución es simple: no hacer que el modelo copie literalmente y sustituirlo por generar, resumir u obtener con herramientas. Y cuando se detenga con un 400, lee primero la cadena del mensaje para no confundir la causa: solo con eso, la mayoría de las veces podrás seguir adelante.
FAQ
P. ¿Esto significa que han advertido a mi cuenta?
R. Si es un falso positivo puntual, no. Ahora bien, la documentación oficial deja claro que si repites intentos de extraer realmente una obra protegida puede haber advertencias y suspensión de la cuenta. No hace falta alarmarse por una única aparición durante un trabajo legítimo.
P. ¿No es incómodo que ni siquiera pueda escribir la licencia MIT?
R. El texto completo de una licencia es «texto estándar ya existente», así que en vez de hacer que el modelo lo copie literalmente, es más rápido y fiable obtenerlo con npx license mit o desde choosealicense.com. Además, así evitas el falso positivo.
P. ¿En qué se diferencia del límite de tokens (Prompt is too long)?
R. Es algo completamente distinto. too long trata del tamaño de la entrada que supera la ventana, y se resuelve con /compact u otros. El content filtering policy de hoy trata del contenido de la salida, y reducir el tamaño no lo arregla. Más detalles aquí.
P. Se detiene en un trabajo legítimo haga lo que haga. ¿Qué hago?
R. Si reformulas el prompt hacia la generación o el resumen y divides la tarea pero aun así se repite, repórtalo al soporte de Anthropic incluyendo el request id. El filtro se sigue mejorando, y compartir los falsos positivos es el camino más corto hacia la solución.