Error de PostgreSQL: password authentication failed for user

psql: error: connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL:  password authentication failed for user "app_user"

Llegaste al servidor, pg_hba.conf seleccionó un método de autenticación basado en contraseña para esta conexión, y la comprobación de la contraseña falló. El mensaje del cliente es deliberadamente vago; el log del servidor normalmente dice más.

Qué significa este error

Al cliente solo se le dice "authentication failed" — es intencional, para evitar filtrar información a atacantes. El log del servidor, sin embargo, registra la razón subyacente en el mismo timestamp: que el rol no tenga contraseña asignada, que la contraseña no coincida, o que el formato de la contraseña almacenada no sea utilizable con el método de autenticación que exige pg_hba.conf.

Ese último merece una palabra: las contraseñas se almacenan con hash, usando el algoritmo que tenía password_encryption cuando se estableció la contraseña (scram-sha-256 en las versiones modernas, md5 históricamente). Cambiar password_encryption o el método de pg_hba no convierte las contraseñas ya almacenadas — los desajustes se manifiestan como logins fallidos para contraseñas que son "definitivamente correctas".

Causas comunes

Cómo diagnosticarlo

Cómo solucionarlo

🔍 El fallo vecino: no pg_hba.conf entry for host — cuando ninguna regla coincide con la conexión en absoluto.