102931 El destino contestó algo que no encaja con su contrato
RESPUESTA_CON_FORMA_INESPERADA
Clase común a toda la flota (familia «contrato»): La respuesta no tenía la forma esperada. El fallo está en algo de lo que depende atalaya, no en la petición.
Qué ha pasado
Respuesta 2xx cuyo cuerpo NO cumple el contrato: en Matrix, un 200 sin event_id, o un cuerpo que ni siquiera es JSON (un portal cautivo devolviendo HTML con 200 es el caso real). NO es caída ni rechazo: es que ya no podemos fiarnos de lo que dice el destino.
Cómo se soluciona
Contrastar con la documentación del proveedor; puede ser un cambio no anunciado.
Qué hacer mientras tanto
Ninguno: sin acuse no hay prueba de entrega, así que la entrega NO se da por buena. Antes se contaba como entregada con external_ref vacío, que es peor que fallar.
Ya costó tiempo
Señalado por Alcázar: un doble que es CLIENTE de pega no puede cazar un desajuste de forma, porque no hay respuesta que desajustar. Se necesita muestra capturada del proveedor real.
Dónde se lanza
motor/clasificar.py:clase_de_fallo → 'forma_inesperada' → 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
931- clase común a toda la flota: La respuesta no tenía la forma esperada