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 following errors can occur when interacting with the Reporter endpoints. Refer to the tables below for the possible error codes, what they mean, and how to resolve them.

400: Validation errors


The RPT-0003 message lists html, csv, and xml, but the API accepts five output formats: HTML, PDF, CSV, XML, and TXT. See Upload template.

404: Not found


409: Conflicts


412: Precondition failed


422: Unprocessable


429: Too many requests


500: Server errors


Every unexpected failure during synchronous endpoint handling surfaces as HTTP 500. The response carries code: RPT-0018 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 only its classified error_code (RPT-0018 for an untyped failure). Other worker failures end with status Error and a safe non-RPT metadata.error_code of report_generation_failed, report_generation_timeout, or report_generation_canceled. These failures have no sections map and do not retain the underlying RPT code. | RPT-0034 | Communication Error with SeaweedFS | Error communicating with the file storage to download or upload a file. Please try again. | | RPT-0058 | Data Source Unavailable | The data source is currently unavailable. Results may be incomplete. | | RPT-0060 | Extraction Job Failed | The extraction job failed. Please try again later or contact support. | | RPT-0061 | Template Rendering Failed | The template could not be rendered with the provided data. This is a permanent error and will not succeed on retry. | | RPT-0063 | CRM Hash Key Not Configured | CRM hash key not configured. | | RPT-0064 | CRM Encrypt Key Not Configured | CRM encrypt key not configured. | | RPT-0065 | Record Decryption Failed | Record decryption failed. | | RPT-0066 | Cipher Init Failed | Cipher initialization failed. | | RPT-0067 | Invalid Extracted Data | The extracted data is invalid. | | RPT-0068 | Unexpected Collection Result | The data collection returned an unexpected result. | | RPT-0069 | Data Source Not Found | The data source referenced by the report was not found. | | RPT-0070 | Data Source Unavailable | The data source was unavailable during extraction. |