Skip to main content
Version: 0.9.17-patch2

Diagnose recording storage and processing

Use this procedure when a test call has missing recording outputs, remains in processing, fails playback, or is retained longer than expected.

Availability: You need access to the affected app/team configuration and relevant recording-job logs. Bucket inspection requires separately authorized storage access. Do not share real transcripts, keypad values, credentials or unrelated call content when reporting a failure.

Trace the recording stages​

In words: the published selection and call-frequency check determine whether recording is requested. The available data and protection rules determine what can be retained. Upload/processing must succeed before objects can be inspected; playback and expiry have their own checks.

1. Confirm the published selection​

Record the release, app, team, conversation and time. Compare the published app settings with the intended recording selection. A saved draft is not sufficient.

For configuration integrations, inspect the effective combination of recordingOutputs and the compatibility field recordingEnabled. A nonempty valid explicit list wins. An empty or absent list with recordingEnabled: true resolves to all recording outputs; clearing only the list is not a reliable API-level way to disable recording. The UI's clear-selection action sets both fields consistently.

2. Check whether this call was selected​

With frequency 1, every eligible call is selected. For values above 1, the SIP runtime increments an app-scoped Redis counter and selects calls when the counter is divisible by the frequency. This is an app-level counter, not a percentage guarantee or a separate counter for every phone number.

Inspect recording_frequency_check for the app and call. If the counter check fails, the runtime logs RecordingFrequencyCheckError and allows recording rather than treating the error as a skip. Selection still does not prove successful retention.

3. Match outputs to available data​

ObservationCheck next
Transcript-only selection has no audio playerExpected; verify the selected transcript object separately
A selected turn transcript is absentCheck whether the job had any segment activities, whether that transcript output was selected, and whether processing succeeded
A turn transcript exists with empty itemsDo not assume corruption from emptiness alone; filtering can leave an empty document
A selected audio output is absentCheck that the relevant source stage/turn audio existed and was eligible for retention
Protected intervals are missing from retained outputCheck the runtime storage-protection policy separately from app selection and PII log display

Use the recording output reference to interpret common JSON fields and object references. Integration-specific metadata is outside that shared reference. Do not reconstruct object keys from an assumed folder pattern or treat a declared JSON reference as proof that the object exists.

4. Check destination, upload and processing​

Confirm the team's current bucket, region and assumed-role configuration with the storage administrator. Inspect the upload result and any subsequent recording job before repeatedly changing app selections. Some outputs need post-call processing; a requested artefact is not a completed artefact.

A recent destination change is especially relevant: earlier objects are not automatically moved, while normal playback/deletion looks in the current team bucket. Coordinate recovery with the operator who owns the previous destination rather than deleting or recreating data.

5. Verify retention independently​

Inspect the effective bucket lifecycle and the delphi-recordings-ttl rule described in Team recording storage. Check the enabled state, recordings/ prefix and expiration value. A successful Team settings save can coexist with a failed lifecycle update.

After correcting configuration, repeat a controlled call and verify the expected new objects, processing result and playback where applicable. Record the version, selected outputs, frequency decision, job outcome and destination identity. Do not claim that a corrected setting migrated or deleted earlier recordings.