A failed request is not automatically a failed stream. Establish whether it concerns a source upload, relay fetch, listener request, stylesheet or administrative operation. These paths touch different credentials and files.
Resolve filesystem paths first
basedir, webroot, adminroot and logdir describe different locations. A missing stylesheet under adminroot can break the visual administration view while its XML operation still works. A readable media file under webroot may become public; private configuration, user files and certificates do not belong there.
KH aliases use source and dest. This is a fragment for the existing <paths> block, not regular Icecast 2.5’s destination attribute:
<alias source="/listen" dest="/live.ogg"/>Check filesystem access as the service identity. If using chroot, resolve paths inside that environment and include required supporting files. A path that exists for the shell user may be inaccessible to the daemon.
Capture enough logging, then reduce it
The classic KH numeric error levels run from 0 to 4: error, warning and informational/debug detail are selected by increasing the level. The supplied configuration uses 3; 4 adds debug detail. This complete logging-block example is illustrative and needs a writable logdir:
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>3</loglevel>
<logsize>10000</logsize>
<logarchive>1</logarchive>
</logging>logsize is expressed in kilobytes in this classic layout. The pinned parser also accepts nested log definitions such as name and size; do not combine alternatives without checking their precedence. A mount’s skip-accesslog suppresses useful evidence as well as traffic volume. Rotate and restrict access to logs, which can contain listener addresses and sensitive query strings.
Follow one failure across layers
| Symptom | First discriminating check |
|---|---|
| Source rejected | Mount match, source credentials, existing source and hijack policy |
| Relay repeatedly reconnects | Origin response, credentials, format and retry interval |
| Listener denied | Selected mount rule and authentication callback response |
| Audio stalls | Source stability, rate, queue/burst and player decode |
| Administration view fails | Authenticated XML versus XSLT file and path |
Record time, URL, status and the corresponding source/log event. Redact secrets before sharing excerpts. Change one variable at a time and restore the normal logging level afterwards. None of the illustrative errors above is presented as an observed runtime result.