Referencia técnica independienteSitio oficial
  • Software y sistemas
  • Base de datos

08006

PostgreSQL 08006 en base de datos: la conexión falló durante el uso

Verificada con fuentes3 fuentesRevisada 3 oct 2026
¿Viene un técnico? Mira los 2 pasos que debe enseñarte
Trace

Evidencia vinculada a esta decisión

Ver fuente: PostgreSQL 18 Appendix A: Error Codes

Nivel 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.

  1. 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.

  2. 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.

  1. Si el servidor acepta conexiones ahora

    Requiere herramientas

    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

  2. Estado de las escrituras afectadas

    Requiere herramientas

    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

  3. Detección de enlaces muertos en el cliente

    Requiere herramientas

    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. 1

    PostgreSQL 18 Appendix A: Error Codes

    PostgreSQL Global Development Group · 2026 · official_doc

  2. 2

    PostgreSQL error and notice fields

    PostgreSQL Global Development Group · 2026 · official_doc

  3. 3

    PostgreSQL database connection control functions

    PostgreSQL Global Development Group · 2026 · official_doc

Fuentes: PostgreSQL 18 Appendix A: Error Codes · PostgreSQL error and notice fields · PostgreSQL database connection control functionsrevisado 2026-10-03 · verificado

¿Te ha resultado útil esta ficha?