EDB Qué significa un código de error y qué hacer con él

Todos los servicios › atalaya

102901 El destino aceptó la conexión y se colgó

DESTINO_NO_CONTESTO_A_TIEMPO

Clase común a toda la flota (familia «dependencia»): Dependencia no contestó a tiempo. El fallo está en algo de lo que depende atalaya, no en la petición.

Qué ha pasado

Hablamos con el destino y no respondió dentro de nuestro plazo. Es DISTINTO de que esté caído: el puerto abre y el handshake completa, así que desde fuera parece vivo. Para el reintento se trata como incierto, porque la petición PUDO llegar.

Cómo se soluciona

Ajustar el plazo del driver si el destino es legítimamente lento (NOTIFY_MATRIX_TIMEOUT_S, NOTIFY_HTTP_TIMEOUT_S). Si se repite, mirar el servicio del destino, no el nuestro.

Qué hacer mientras tanto

El backoff con jitter (migración 0019) espacia los reintentos para no martillear un destino que ya va lento.

Ya costó tiempo

2026-08-23. Timeouts intermitentes de matrix.org (>20 s) agotaban los reintentos y tiraban avisos a la DLQ; entre ellos el aviso del despliegue de la v0.2.12. Se corrigió subiendo el read timeout del driver a 30 s (MR !95) y quedó VALIDADO en producción con datos: 8 agotados por timeout antes del despliegue, 0 después.

Dónde se lanza

motor/clasificar.py:clase_de_fallo → 'timeout' → CODIGO_POR_CLASE → motor/cola.py:cerrar_entrega, que lo escribe en entregas.codigo (migración 0023) y sale por GET /envios/{id}/entregas

Cómo se lee el código

1
origen: Fortiseg
02
servicio: atalaya
901
clase común a toda la flota: Dependencia no contestó a tiempo