- Software y sistemas
- Base de datos
08006
PostgreSQL 08006 en base de datos: la conexión falló durante el uso
Evidencia vinculada a esta decisión
Ver fuente: PostgreSQL 18 Appendix A: Error CodesNivel de riesgo
Atención alta
Comprobaciones mínimas; se recomienda asistencia profesional.
Urgencia
Media — atiéndelo hoy
Respuesta rápida
La comunicación entre la aplicación y PostgreSQL se rompió. Comprueba si el servidor acepta conexiones con pg_isready y anota la hora exacta; antes de repetir una escritura, verifica si llegó a confirmarse.
Seguridad primero
Antes de continuar
- Detente antes de repetir escrituras: si el corte ocurrió tras enviar COMMIT, la aplicación no sabe si se confirmó, y repetir puede duplicar datos.
Puedes hacerlo con seguridad
- Si el servidor acepta conexiones ahora
- Estado de las escrituras afectadas
- Detección de enlaces muertos en el cliente
Deja estas tareas a un profesional cualificado
- No intentes esta tarea profesional: Revisar el registro del servidor a la hora del corte
- No intentes esta tarea profesional: Revisar la red entre cliente y servidor
Lo que un técnico debe poder justificar
Viene un técnico a casa
Estos son los pasos que tiene que hacer y enseñarte. Márcalos mientras trabaja: si se salta pasos, no aceptes el cambio de pieza.
No son instrucciones para que abras o manipules el equipo. Son las comprobaciones que deben sostener una conclusión técnica.
Revisar el registro del servidor a la hora del corte
Qué haceEl DBA busca reinicios, paradas o cierres de sesión a esa hora.
Te tiene que enseñarlas líneas del registro con la hora.
Por escritola causa identificada.
Revisar la red entre cliente y servidor
Qué haceEl equipo de red comprueba cortes o cierres de conexiones inactivas en el camino a esa hora.
Te tiene que enseñarlos registros de red con la misma hora.
Por escritoel tramo afectado y la corrección.
Antes de aceptar una pieza o reparación
Aún no ha demostrado nada. No aceptes un cambio de pieza solo por el código.
Sigue estos pasos
Aviso: Sigue el orden documentado. Un código identifica el sistema afectado, pero por sí solo no demuestra qué pieza está averiada.
Si el servidor acepta conexiones ahora
- Quién:
- el desarrollador o el DBA.
- Cómo:
- ejecuta pg_isready con el mismo host y puerto que usa la aplicación.
- Resultado que importa:
- el código de salida: 0 acepta, 1 rechaza, 2 sin respuesta, 3 parámetros inválidos.
- Si devuelve 0:
- descarta que el servidor siga caído; el corte fue puntual o está en la red del cliente.
- Si devuelve 1 o 2:
- apunta al servidor o a la red hasta él; pasa al DBA.
- Evidencia a conservar:
- salida de pg_isready con hora y origen desde donde se lanzó.
pg_isready solo comprueba si hay respuesta; no exige credenciales. No pruebes contraseñas en bucle para diagnosticar.
Evidencia: PostgreSQL 18 pg_isready
Estado de las escrituras afectadas
- Quién:
- tú, como desarrollador.
- Cómo:
- localiza las transacciones en curso a la hora del corte y comprueba en la base si sus cambios están.
- Resultado que importa:
- qué operaciones quedaron confirmadas y cuáles no.
- Si los cambios no están:
- confirma que el servidor revirtió la transacción; puedes repetirla entera.
- Si no sabes si el COMMIT llegó:
- no la repitas sin una clave que evite duplicados.
- Evidencia a conservar:
- lista de operaciones afectadas y resultado.
No repitas cobros o pedidos sin comprobar su estado. Si no tienes acceso a la base de producción, no lo hagas tú: pide la comprobación al DBA.
Evidencia: PostgreSQL 18 Appendix A: Error Codes · PostgreSQL 18 frontend/backend protocol overview
Detección de enlaces muertos en el cliente
- Quién:
- tú, como desarrollador.
- Cómo:
- revisa en la cadena de conexión los parámetros keepalives, keepalives_idle, tcp_user_timeout y connect_timeout.
- Resultado que importa:
- qué valores usa la aplicación y si alguno está desactivado.
- Si keepalives está a 0:
- indica que el cliente puede tardar en detectar cortes; valora activarlo.
- Si ya están activos y el fallo persiste:
- descarta este ajuste como causa y sigue con la red.
- Evidencia a conservar:
- cadena de conexión sin la contraseña.
No copies contraseñas en tickets ni registros.
Evidencia: PostgreSQL database connection control functions
Situación no resuelta
Si el error persiste, no sigas probando por tu cuenta. Mira qué tiene que hacer y enseñarte el técnico.
Técnico virtual
¿Sigue apareciendo 08006 tras comprobarlo?
Este recorrido usa el código exacto y tus respuestas para elegir una prueba, su resultado esperado y la siguiente bifurcación.
Dónde se aplica este código
Un código solo tiene significado dentro del producto y la versión correctos.
Ámbito principal
- Sistema
- Software y sistemas
- Marca
- PostgreSQL
- Tipo de producto
- Base de datos
Variantes conocidas del código
- connection_failure
- PostgreSQL 08006
- SQLSTATE 08006
Qué significa
El apéndice A asigna 08006 a connection_failure, en la clase 08. El protocolo describe cierres por pérdida del enlace, caída de un extremo o pérdida de sincronización de mensajes; ante un cierre inesperado, el cliente debe limpiar y puede volver a conectar. Si el servidor cierra la sesión, revierte la transacción abierta. libpq ofrece keepalives TCP y tcp_user_timeout para detectar enlaces muertos. El código no indica si falló la red, el servidor o un intermediario.
Advertencias y condiciones de parada
- Atención altaadvertencia editorial
Detente antes de repetir escrituras: si el corte ocurrió tras enviar COMMIT, la aplicación no sabe si se confirmó, y repetir puede duplicar datos.
Evidencia: PostgreSQL 18 Appendix A: Error Codes · PostgreSQL 18 frontend/backend protocol overview
Síntomas y causas
Causas probables · en orden
- Servidor detenido o reiniciadoPosible
El servidor dejó de aceptar conexiones a la hora del fallo. pg_isready devuelve 1 si rechaza conexiones o 2 si no responde, lo que lo distingue de un corte limitado a la red del cliente.
Evidencia: PostgreSQL 18 frontend/backend protocol overview · PostgreSQL 18 pg_isready
- Enlace de red cortadoPosible
La conexión se perdió en el camino aunque el servidor siguiera activo. Otros clientes conectan bien y pg_isready desde otra máquina devuelve 0.
Evidencia: PostgreSQL database connection control functions · PostgreSQL 18 frontend/backend protocol overview
Fuentes y referencias técnicas
- 1
PostgreSQL 18 Appendix A: Error Codes
PostgreSQL Global Development Group · 2026 · official_doc
- 2
PostgreSQL error and notice fields
PostgreSQL Global Development Group · 2026 · official_doc
- 3
PostgreSQL database connection control functions
PostgreSQL Global Development Group · 2026 · official_doc
¿Te ha resultado útil esta ficha?