Saltar al contenido principal
Formato de error Reporter devuelve los errores como problem details de RFC 9457 con el tipo de medio application/problem+json:
Definiciones de los campos
  • type – Un URI que identifica el error en el catálogo de errores de Lerian. Se construye como https://errors.lerian.studio/v1/<code>.
  • title – El texto del estado HTTP (por ejemplo, Bad Request).
  • status – El código de estado HTTP.
  • detail – Orientación detallada para ayudarte a resolver el error. En las respuestas 5xx, Reporter siempre sanea el detalle a internal error, de modo que ninguna causa interna se filtra. Usa code para ramificar de forma programática.
  • code – Un identificador estable y único para el error (RPT-NNNN). Útil para el manejo programático y las solicitudes de soporte.
  • errors – Lista opcional de detalles de validación por campo, cada uno con un message y una location.
Algunos mensajes contienen marcadores de posición como %v o %s. Reporter los reemplaza por los valores específicos de tu solicitud.

Errores de Reporter


Las tablas a continuación enumeran los errores que pueden ocurrir cuando llamas a los endpoints de Reporter, qué significa cada uno y cómo resolverlo.

400: Errores de validación


RPT-0075: CRM Organization Scope Unresolved

RPT-0075 es una protección de tipo fail-closed para las plantillas que mapean plugin_crm. Reporter no guarda ni ejecuta un mapeo de CRM sin ámbito definido porque eso podría exponer registros entre organizaciones de Midaz. Puede ocurrir al importar, crear o actualizar una plantilla de CRM, y cuando un worker resuelve una plantilla de CRM ya guardada. No trates este código como prueba de que falta una variable de entorno. También ocurre cuando Reporter no puede encontrar plugin_crm en el registro de fuentes de datos. Primero confirma que la plantilla mapea plugin_crm, luego revisa la configuración del Manager y del worker, la disponibilidad del registro y los ajustes de conexión del CRM que no son sensibles. Para un despliegue self-hosted, configura el bloque completo DATASOURCE_CRM_*, incluido DATASOURCE_CRM_MIDAZ_ORGANIZATION_ID, y mantén la contraseña del CRM y CRYPTO_HASH_SECRET_KEY_CRM / CRYPTO_ENCRYPT_SECRET_KEY_CRM en Secrets. Esas claves criptográficas deben ser las mismas que usa el CRM, y DATASOURCE_CRED_ENC_KEY debe mantenerse estable. Al iniciar el Manager, la semilla de fuente de datos reservada puede completar un metadata.midazOrganizationId ausente o vacío. La semilla nunca sobrescribe un valor persistido que no esté vacío. No crees ni apliques PATCH a plugin_crm a través de la API común de fuentes de datos. Si un ID de organización persistido y no vacío es incorrecto, detén la recuperación genérica y contacta al soporte de Lerian. Después de un cambio aprobado, importa o guarda la plantilla, genera un informe, confirma que los campos del CRM se descifran y verifica el aislamiento entre organizaciones. Consulta Reporter mediante Helm para conocer los valores del chart.

401: No autorizado


404: No encontrado


409: Conflictos


412: Falló la condición previa


422: No procesable


428: Condición previa requerida


429: Demasiadas solicitudes


500: Errores del servidor


Toda falla inesperada durante el manejo síncrono de un endpoint se presenta como HTTP 500. La respuesta lleva code: RPT-0018, o code: RPT-0034 cuando falla el almacenamiento de archivos, y un detalle saneado de internal error. Las causas internas nunca se filtran en el cuerpo de la respuesta. Las fallas asíncronas del worker y de la generación de informes, en cambio, siguen los estados del informe y los metadatos descritos a continuación. Reporter no las devuelve a la solicitud original como HTTP 500.

Errores de generación de informes (asíncronos)


La generación de informes se ejecuta de forma asíncrona en el worker. La solicitud HTTP original nunca recibe una sección de extracción de datos fallida. El informe termina con estado Error cuando fallan todas las secciones, o Partial cuando fallan algunas. En cualquiera de los dos casos, metadata.error_code es RPT-0060. Las claves de metadata.sections son nombres de bases de datos. Cada entrada fallida contiene su error_code clasificado (RPT-0018 para una falla sin tipo). Una entrada RPT-0075 también lleva un mensaje remediation. Cuando el worker termina un informe con un rechazo RPT, el informe queda con estado Error. metadata.error_code lleva el código RPT, metadata.error_title su título, y metadata.error su mensaje. Otras fallas del worker terminan con estado Error y un metadata.error_code que no es RPT: report_generation_failed, report_generation_timeout, report_generation_canceled o report_message_schema_unsupported. Estas fallas no tienen un mapa sections. Un informe cuyo worker dejó de indicar que seguía activo termina con estado Error y metadata.error_code RPT-0160.

Errores de generación programada (registrados en el log)


El programador de plazos genera estos códigos. Se ejecuta en el Manager cuando DEADLINE_TRIGGER_ENABLED=true. No responde a ninguna solicitud, así que los códigos aparecen solo en sus líneas de log, nunca en una respuesta HTTP. Cada código está en el campo error_code de su línea de log, excepto RPT-0113, que aparece solo en el campo error. Cuando un rechazo no se resuelve con un reintento, una segunda línea lo informa con error_code RPT-0118 y lleva el código original en error.