Lingua-e
← Errores
Python

Qué significa ConnectionError y cómo solucionarlo

Referencia del error

ConnectionError

Lenguaje

Python

Severidad

Media

Cuándo ocurre

Un ConnectionError se lanza en Python cuando una operación de red falla al establecer o mantener una conexión.

Posibles soluciones

Verifica que el servicio de destino esté en ejecución y sea accesible (intenta con curl o ping). Establece siempre un timeout al hacer solicitudes de red para evitar bloqueos indefinidos. Envuelve las llamadas de red en try/except e implementa una estrategia de reintento con retroceso exponencial para fallos transitorios.

Errores relacionados

Más detalles

Un ConnectionError se lanza en Python cuando una operación de red falla al establecer o mantener una conexión. En la biblioteca estándar es una clase base para subclases de OSError relacionadas con la red. La librería requests reutiliza este nombre para fallos de conexión HTTP.

Por qué ocurre

  • El servidor de destino no está en ejecución o no es accesible en el host y puerto especificados.
  • Un firewall o política de red está bloqueando la conexión.
  • La URL tiene un error tipográfico, puerto incorrecto o protocolo equivocado (http vs https).
  • La conexión se estableció pero se interrumpió inesperadamente a mitad de la solicitud por un timeout o reinicio del servidor.

Posibles soluciones

Verifica que el servicio de destino esté en ejecución y sea accesible (intenta con curl o ping). Establece siempre un timeout al hacer solicitudes de red para evitar bloqueos indefinidos. Envuelve las llamadas de red en try/except e implementa una estrategia de reintento con retroceso exponencial para fallos transitorios.

Ejemplos

Python

Código que causa el error

import requests

response = requests.get("http://localhost:8080/api/health")
print(response.status_code)

Error en la terminal

Traceback (most recent call last):
  ...
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8080):
Max retries exceeded with url: /api/health
(Caused by NewConnectionError: Failed to establish a new connection:
[Errno 111] Connection refused)

Código corregido

import requests
from requests.exceptions import ConnectionError as RequestsConnectionError

try:
    response = requests.get("http://localhost:8080/api/health", timeout=5)
    print(response.status_code)
except RequestsConnectionError:
    print("Service is unavailable. Check that it is running.")

Practica en inglés

¿Cómo le explicarías un ConnectionError a un compañero dev? Elige la frase correcta:

"I hit an error...

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis