ABIANAPP_NODE_PRODUCCION/TRIP_STATUS_NULL_DEBUG_RUNBOOK.md

2.5 KiB

Trip Status Null Debug Runbook

Objetivo

Identificar si los null en c_cambios_estado (campos latitud, longitud, id_transportista, n_proveedor) se originan en:

  • payload recibido,
  • resolución de identidad/proveedor en backend,
  • o persistencia final en base de datos.

1) Correlacionar por request_id en logs

POST crudo recibido

rg -n '"request_id":"<REQUEST_ID>"' /var/log/posts.log

Flujo de estado manual/automático en status.log

rg -n "\"request_id\":\"<REQUEST_ID>\"" /var/log/status.log

Trazas internas del controlador (stdout/stderr de la API)

rg -n "<REQUEST_ID>|TripStatusDebug|TripStatusAudit" /tmp/node-gestion-api.log

2) Verificar última persistencia en c_cambios_estado

Último estado de un viaje para un estado concreto

SELECT
    id_viaje,
    id_estado,
    n_proveedor,
    id_transportista,
    latitud,
    longitud,
    ind_fallido,
    incidencia,
    fecha_y_hora,
    id_usuario
FROM c_cambios_estado
WHERE id_viaje = ? AND id_estado = ?
ORDER BY fecha_y_hora DESC
LIMIT 1;

Últimos cambios del viaje (timeline)

SELECT
    id_viaje,
    id_estado,
    n_proveedor,
    id_transportista,
    latitud,
    longitud,
    fecha_y_hora
FROM c_cambios_estado
WHERE id_viaje = ?
ORDER BY fecha_y_hora DESC
LIMIT 20;

3) Verificar resolución proveedor/transportista (fuente backend)

Relación viaje + DNI

SELECT
    id_viaje,
    dni,
    n_proveedor,
    id_proveedor,
    fecha_salida
FROM c_viajes_proveedor
WHERE id_viaje = ? AND dni = ?
ORDER BY n_proveedor ASC;

Detectar filas problemáticas con n_proveedor nulo

SELECT
    id_viaje,
    dni,
    n_proveedor,
    id_proveedor
FROM c_viajes_proveedor
WHERE id_viaje = ? AND n_proveedor IS NULL;

4) Verificación temporal sin request_id (fallback)

Si no hay request_id, cruzar por ventana temporal:

  1. Tomar timestamp del POST en /var/log/posts.log.
  2. Buscar en /var/log/status.log en +/- 5 segundos por trip_id.
  3. Validar fecha_y_hora en c_cambios_estado para ese trip_id e id_estado.

5) Interpretación rápida

  • posts.log trae lat/long válidas y en debug aparecen normalizadas a null:
    • falla de normalización/parseo.
  • dni_from_token presente pero resolved_n_proveedor = null:
    • inconsistencia en c_viajes_proveedor.
  • debug de persistencia muestra valores correctos pero BD tiene otros:
    • revisar triggers/procesos posteriores o concurrencia.
  • debug de persistencia ya muestra null:
    • origen en backend previo al insert/update.