Call history error codes (mpbx-cdr)
Codes raised by mpbx_cdr and the call history routes (W2-CDR-01). Kinds map to HTTP statuses in the
API layer as for the common codes; the ones below that need another status say so.
Messages never contain call data. The projector and the reader also raise the MPBX-CH-* codes of
storage.md. Guide: docs/guides/cdr.md.
| Code | HTTP | Meaning | What to do |
|---|---|---|---|
MPBX-CDR-UNREADABLE | 500 | ClickHouse returned a cdr_calls or cdr_legs row that does not have the expected shape (missing column, unparsable id or time). Nothing was returned for that request. | Run mpbx migrate --ch: an unapplied migration (20261004220000_cdr_projection) is the usual cause. |
MPBX-CDR-SCOPE-TOO-LARGE | 422 | Scope::users only (library callers): more than 2,000 users in one user scope. The call history API no longer raises it since GAP-B07 (FU-CDR01-L1): a department scope above 2,000 users filters by the departments stamped on each row. | Use Scope::departments. |
MPBX-CDR-PDF-FONT | config | A cdr.pdf_fonts file cannot be read, is not a TrueType font, or has CFF outlines (.otf), which the PDF export cannot embed. The message names the file. mpbx run refuses to start. | Point cdr.pdf_fonts at .ttf or .ttc files (for example Noto Sans, DejaVu Sans, WenQuanYi Micro Hei), or leave it empty to use the system fonts that exist. |
MPBX-CDR-EXPORT-UNAVAILABLE | 501 | The export format has no encoder installed (CSV, XLSX and PDF are built in since W4-RPT-01; only a build that installs fewer answers this). | Use format=csv. |
MPBX-CDR-EXPORT-TOO-LARGE | 413 | The export would have more rows than cdr.export_max_rows (default 100,000), or, for a PDF, more than 20,000 rows. | Narrow the filters (a date range), use CSV or XLSX, or raise cdr.export_max_rows. |
MPBX-CDR-BAD-RETENTION | config | cdr.retention_days is outside 1 to 36500. mpbx run refuses to start. | Fix [cdr] in mpbx.toml. |
MPBX-API-NOT-CONFIGURED | 503 | The call history routes answer this when the server runs without clickhouse.url. Call events are not kept anywhere else, so calls made meanwhile have no record. | Set [clickhouse] url and restart. |