Skip to main content
Error format Reporter returns errors as RFC 9457 problem details with the application/problem+json media type:
Field definitions
  • type – A URI that identifies the error in the Lerian error catalog. Built as https://errors.lerian.studio/v1/<code>.
  • title – The HTTP status text (for example, Bad Request).
  • status – The HTTP status code.
  • detail – Detailed guidance to help you resolve the error. For 5xx responses, Reporter always sanitizes the detail to internal error, so no internal cause leaks. Use code to branch programmatically.
  • code – A stable, unique identifier for the error (RPT-NNNN). Useful for programmatic handling and support requests.
  • errors – Optional list of per-field validation details, each with a message and a location.
Some messages contain placeholders such as %v or %s. Reporter replaces them with the specific values from your request.

Reporter errors


The tables below list the errors that can occur when you call the Reporter endpoints, what each one means, and how to resolve it.

400: Validation errors


RPT-0075: CRM Organization Scope Unresolved

RPT-0075 is a fail-closed protection for templates that map plugin_crm. Reporter does not save or run an unscoped CRM mapping because that could expose records across Midaz organizations. It can occur while importing, creating, or updating a CRM template, and when a worker resolves an already-saved CRM template. Do not treat this code as proof that one environment variable is absent. It also occurs when Reporter cannot look up plugin_crm in the datasource registry. First confirm that the template maps plugin_crm, then check the Manager and worker configuration, registry availability, and the non-sensitive CRM connection settings. For a self-hosted deployment, configure the complete DATASOURCE_CRM_* block, including DATASOURCE_CRM_MIDAZ_ORGANIZATION_ID, and keep the CRM password and CRYPTO_HASH_SECRET_KEY_CRM / CRYPTO_ENCRYPT_SECRET_KEY_CRM in Secrets. Those crypto keys must be the same keys used by CRM, and DATASOURCE_CRED_ENC_KEY must remain stable. At Manager startup, the reserved datasource seed can fill an absent or empty metadata.midazOrganizationId. The seed never overwrites a non-empty persisted value. Do not create or PATCH plugin_crm through the ordinary datasource API. If a non-empty persisted organization ID is incorrect, stop the generic recovery and contact Lerian support. After an approved change, import or save the template, generate a report, confirm CRM fields decrypt, and verify organization isolation. See Reporter via Helm for the chart values.

401: Unauthorized


404: Not found


409: Conflicts


412: Precondition failed


422: Unprocessable


428: Precondition required


429: Too many requests


500: Server errors


Every unexpected failure during synchronous endpoint handling surfaces as HTTP 500. The response carries code: RPT-0018, or code: RPT-0034 when the file storage fails, and a sanitized internal error detail. Internal causes never leak into the response body. Asynchronous worker and report-generation failures instead follow the report statuses and metadata described below. Reporter does not return them to the original request as HTTP 500.

Report-generation errors (asynchronous)


Report generation runs asynchronously in the worker. The original HTTP request never receives a failed data-extraction section. The report ends with status Error when all sections fail, or Partial when some fail. In either case, metadata.error_code is RPT-0060. The keys of metadata.sections are database names. Each failed entry contains its classified error_code (RPT-0018 for an untyped failure). An RPT-0075 entry also carries a remediation message. Other worker failures end with status Error and a safe non-RPT metadata.error_code of report_generation_failed, report_generation_timeout, report_generation_canceled, or report_message_schema_unsupported. These failures have no sections map and do not retain the underlying RPT code. A report whose worker stopped reporting that it was alive ends with status Error and metadata.error_code RPT-0160.

Scheduled generation errors (logged)


The deadline scheduler raises these codes. It runs in the Manager when DEADLINE_TRIGGER_ENABLED=true. It answers no request, so the codes appear only in its log lines, never in an HTTP response. Each code is in the error_code field of its log line, except RPT-0113, which appears only in the error field. When a refusal cannot clear by retrying, a second line reports it with error_code RPT-0118 and carries the original code in error.