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.
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ómo solucionarlo
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).
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()Errores relacionados
¿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