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:

xml · Code example
<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:

xml · Code example
<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

SymptomFirst discriminating check
Source rejectedMount match, source credentials, existing source and hijack policy
Relay repeatedly reconnectsOrigin response, credentials, format and retry interval
Listener deniedSelected mount rule and authentication callback response
Audio stallsSource stability, rate, queue/burst and player decode
Administration view failsAuthenticated 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.