VoIP.info Troubleshooting guide

Asterisk ARI log channel is missing, silent or will not rotate

Trace one logging channel through instance identity, ARI inventory, level configuration, runtime lifecycle, destination write, event generation, rotation and downstream collection.

Reviewed 2026-10-10Current Asterisk 23 ARI logging API and REST data model plus Asterisk logging configuration, runtime-command, debug-collection and call-identifier guidance reviewed October 10, 2026; no Asterisk host, ARI identity, logger channel, logger.conf, file, filesystem, syslog target, collector, trace, credential, call or cleanup action was inspected or testedAdvancedDocumentation based · not lab tested

Freeze one channel and one missing boundary

Record the request target, Asterisk ID and version, exact case-sensitive channel name, ARI list object, intended destination and type, level configuration, effective logger.conf, log directory, filesystem state, collector target, time source, expected event, reproduction window, HTTP result and rotation or lifecycle event. Preserve prior verbose and debug levels and redact credentials.

Classify the symptom: absent from the ARI list, add returns 400, add returns 409, accepted add but no destination appears, destination exists but the expected record is absent, channel disappears after reload, restart or rotation, rotate returns 404, delete returns 404, or local output exists but a downstream collector does not receive it.

Prove the instance and runtime object

Use /asterisk/ping and /asterisk/info to prove the node, then retrieve the full logging list. Compare the returned channel, type, status and configuration with logger show channels on that same instance. Preserve case and do not infer one node's runtime state from another member of the pool.

If the channel is absent, determine whether it should be transient or persistent before recreating it. A restart, logger reload or rotation is relevant because Asterisk documents those events as ending dynamically added CLI channels; the ARI endpoint does not promise greater persistence. Correct the lifecycle owner instead of repeatedly adding an unexplained duplicate.

Validate the requested name and levels

For a 400, compare the required configuration parameter with a known approved level set. For a 409, inspect bounded server logs and existing runtime or configured destinations for a name, path, type, permission or resource conflict. Keep regular file names, absolute paths, console and syslog destinations distinct.

Confirm that the selected levels can contain the expected event. A warning-only channel will not prove a debug event is absent, and broad * output is not an appropriate default repair. If verbose output matters, retain its explicit level because unbounded verbose behavior can depend on console state.

Separate event generation from destination write

Trigger one authorized and repeatable event whose expected level and module are known. Correlate its timestamp, Asterisk call ID, channel identifiers and protocol identifiers with the selected log. If another destination sees the event but this one does not, stay with channel state, level selection, path, permissions, storage and writer behavior.

If no destination sees it, inspect whether the relevant module, protocol logger or application generated it at all. ARI logging-channel control does not enable every module-specific trace, does not capture network packets and does not establish RTP or audible media. Do not widen file permissions or enable global debug merely because one expected line is missing.

Follow local storage, rotation and forwarding separately

Resolve the effective Asterisk log directory, target path, owner, free space and filesystem errors. For rotation, record the configured none, sequential, rotate or timestamp strategy and any post-rotate command, then compare current and archived files before and after the request. A 404 belongs to exact runtime identity or lifecycle, not retention cleanup.

Treat file creation, reopened writer, archived artifact, compression, shipper input and collector ingestion as separate checkpoints. An accepted ARI rotation is not proof of any later checkpoint. A local file with records does not prove the collector accepted, parsed, indexed or retained them.

Correct one owner and close the temporary capture

Correct only the proven owner: target node, exact name, approved level set, runtime lifecycle, persistent logger.conf, destination path, permissions, storage, logger-module state, event source, post-rotate action, shipper or collector. Avoid changing channel levels, filesystem permissions and forwarding together; that erases the failing boundary.

Retest the exact list object, one controlled event, local write, rotation only if required and downstream arrival. Restore previous debug and verbose levels, remove the temporary channel, confirm free space, retain a protected original and share only a redacted copy. No Asterisk logger, file, collector, trace or call was inspected or tested for this guide.

Sources & applicability

Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.

Examples require adaptation to your topology. No live PBX or hardware testing is claimed.