Skip to main content

Call recording error codes (mpbx-recording)

Raised by the recording routes (/api/v1/recordings, /api/v1/me/recordings, /api/v1/recording-files, /api/v1/calls/{id}/recording, /api/v1/recording-consent) and the recording controller (W3-REC-01, W6-TEL-06). Messages never contain phone numbers, object keys, signed URLs or tokens. Guide: Call recording. mpbx-media's own codes (MPBX-MEDIA-*, for example MPBX-MEDIA-CRYPTO) are in media.md and can appear as a recording's error_code.

CodeKindMeaningWhat to do
MPBX-REC-NOT-FOUNDnot_foundNo such recording in this company. Another company's recording is invisible, so its id is a 404 too.Check the id.
MPBX-REC-ACCESS-DENIEDpermission_deniedThe caller may not see or change this recording: it has no participant in the departments the caller's recordings:read (or recordings:delete) covers, or "users see their own recordings" is off for the company (/me/recordings).Ask an administrator for the permission in the right department, or to switch on users_access_own.
MPBX-REC-NOT-STOREDconflictThe recording is still running, paused or failed, so there is no file to download yet.Wait until status is stored. A failed recording has no file; its error_code says why.
MPBX-REC-URL-INVALIDpermission_deniedA download link is malformed, forged, for another company or expired. One code for every case, so a link cannot be probed.Ask for a new link (POST .../download-url); links live 5 minutes by default, at most one hour.
MPBX-REC-INVALIDinvalid_argumentA setting, policy or consent announcement is out of range (retention 1 to 3650 days, mode off/all/external, a consent prompt that is neither beep nor a prompt of the company's library of at most 7 s, an opt-out key other than 0-9, *, #, a DID that is not E.164, an on-demand action other than start/stop/pause/resume), or the target (extension, queue, trunk, DID) does not exist in the company.Fix the named value.
MPBX-REC-LEGAL-HOLDconflictThe recording is under legal hold: neither an administrator nor retention deletes it.Release the hold first (PUT /recordings/{id}/legal-hold with {"legal_hold": false}, recordings:delete).
MPBX-REC-START-FAILEDn/a (recording error_code)A policy asked for the call to be recorded but the rtpengine fork or mpbx-media refused it (the call itself goes on). Stored as the recording's error_code, with an audit record.Check the rtpengine and mpbx-media logs for the call; the media error codes are in media.md.
MPBX-REC-CONSENT-FAILEDunavailable (recording error_code)The call has a consent announcement (its DID, queue or trunk, or the recording policy) but it could not be played: no audio player on rtpengine, the prompt was deleted, is longer than 7 s, or is not playable. The call is not recorded (fail closed: never without the announcement the company asked for); the call itself goes on.Check rtpengine's play media support (the transcoding build) and the prompt; pick beep to rule the prompt out.
MPBX-REC-CALL-NOT-FOUNDnot_foundOn-demand control: no answered call with this id in the company (it ended, it was never answered, or it is another company's).Find the call's id with POST /calls/lookup while it is up.
MPBX-REC-NOT-RECORDINGconflictOn-demand control: pause, resume or stop of a call that is not being recorded.start it first.
MPBX-REC-POLICY-REQUIREDconflictA party of the call tried to stop a recording that a recording policy asks for. It can be paused (PCI) and resumed, not stopped.Pause it, or ask somebody with calls:control for the call's department.
MPBX-REC-DECLINEDconflictThe caller pressed the opt-out key during the consent announcement: the call is not recorded, not even on demand.Nothing; the caller's choice stands for the call.
MPBX-REC-CONTROL-UNAVAILABLEunavailableThis server does not run the call recorder (no SIP side, or no mpbx-media), so it cannot start, stop or pause a live call's recording.Send the request to a node that runs the call engine with mpbx-media.