Lingua-e
← Errores
Python

Qué significa TimeoutError y cómo solucionarlo

Referencia del error

TimeoutError

Lenguaje

Python

Severidad

Media

Cuá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).

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

Python

Código que causa el error

import socket

s = socket.socket()
s.settimeout(2)
s.connect(("10.255.255.1", 80))  # unreachable host

Error 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