Todo funcionaba:
- ✅ Widget funcionando
- ✅ Login correcto
- ✅ API accesible
- ✅ Docker OK
- ❌ Pero cada request devolvía:
401 - You need to sign in or sign up before continuing
Todo lo que probé antes de dar con la solución:
- Tokens nuevos
- Reinstalar Chatwoot
- PostgreSQL
- Headers Authorization y Bearer Tokens
- Configuración de Cloudflare
- Nodos de n8n, peticiones directas con
curly pruebas en Postman... y nada.
El problema REAL era Nginx 🌐
Por defecto, Nginx elimina los headers que contienen guiones bajos (_).
Y resulta que Chatwoot autentica su API utilizando exactamente este header: api_access_token
El resultado: El header era interceptado y borrado por el proxy inverso, por lo que nunca llegaba al contenedor de la aplicación.
La solución 🛠️
La solución fueron literalmente dos líneas en la configuración de Nginx:
underscores_in_headers on;
ignore_invalid_headers off;