Qué significa TimeoutError y cómo solucionarlo
Referencia del error
TimeoutError
Lenguaje
Severidad
MediaCuándo ocurre
TimeoutError se lanza cuando una operación de socket o E/S supera el límite de tiempo establecido por un timeout.
Posibles soluciones
Siempre establece timeouts explícitos en las operaciones de red en lugar de esperar indefinidamente. Implementa lógica de reintento con retroceso exponencial para timeouts transitorios. Distingue entre timeouts de conexión (servidor inalcanzable) y timeouts de lectura (servidor conectado pero lento en responder).
Errores relacionados
Más detalles
TimeoutError se lanza cuando una operación de socket o E/S supera el límite de tiempo establecido por un timeout. Es una subclase de OSError. Muchas librerías de terceros (requests, httpx, asyncio) envuelven esto como su propia excepción de timeout.
Por qué ocurre
- •Se supera un valor de socket.settimeout() antes de que se complete una conexión o lectura.
- •Un servidor remoto está sobrecargado y no responde dentro del tiempo permitido.
- •La congestión de red o la pérdida de paquetes hace que la operación se detenga.
- •El timeout de asyncio.wait_for() se activa antes de que la corrutina termine.
Posibles soluciones
Siempre establece timeouts explícitos en las operaciones de red en lugar de esperar indefinidamente. Implementa lógica de reintento con retroceso exponencial para timeouts transitorios. Distingue entre timeouts de conexión (servidor inalcanzable) y timeouts de lectura (servidor conectado pero lento en responder).
Ejemplos
Código que causa el error
import socket
s = socket.socket()
s.settimeout(2)
s.connect(("10.255.255.1", 80)) # unreachable hostError en la terminal
TimeoutError: timed out
Código corregido
import socket
s = socket.socket()
s.settimeout(5)
try:
s.connect(("10.255.255.1", 80))
except TimeoutError:
print("Connection timed out, host unreachable")
finally:
s.close()Practica en inglés
¿Cómo le explicarías un TimeoutError 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