Troubleshooting Media and Playback¶
In a nutshell
This page is the deep dive for Stage 7 of Troubleshooting & Debugging: what to check when a media request ("play some jazz") matched but nothing plays. It covers empty search results, stream extraction failures, and audio-sink problems. For hardware-level mic/speaker checks, see Troubleshooting → Prove the microphone and speaker work instead.
Log: audio.log (service ovos-audio, or ovos-media if enabled). Bus filter:
ovos.common_play.query / ovos.common_play.query.response, ovos.common_play.status
This stage only applies to media requests ("play some jazz", "next song"), not plain spoken
answers. It starts once Stage 4
has already matched the utterance to the OCP pipeline
(ovos-ocp-pipeline-plugin-high / -medium / -low). If OCP never claims the utterance at all,
that is a Stage 4 problem, not a Stage 7 one: check the pipeline miss log described there first.
(a) Search found nothing¶
Once OCP classifies the utterance as a playback request, it emits ovos.common_play.query and
collects ovos.common_play.query.response results from every installed OCP-enabled media
skill. If no skill answers, or every answer is empty, OVOS reports it found
nothing to play.
Checks:
- Is an OCP-enabled media skill actually installed and loaded? Skills act purely as catalogs here, so with none installed there is nothing to search. See Media Skills (OCP).
- Watch the query round-trip live in
ovos-busmon: filter byovos.common_play.query*to confirm the query went out and see which skills (if any) answered, and with what results. - Reproduce it without speaking:
ovos-say-to "play some jazz"(see Troubleshooting Stage 3), then checkskills.logfor the matching skill's search handler.
(b) A result was found but the stream never starts¶
A search result is only a candidate URI. Before OCP can play it, a stream
extractor has to resolve that URI to the real, directly-playable stream (this is
what the ovos-ocp-*-plugin packages, e.g. ovos-ocp-youtube-plugin or
ovos-ocp-bandcamp-plugin, do). If the matching extractor is missing, misconfigured, or the
remote service it scrapes changes shape, extraction fails and playback never begins even though a
result was found.
Check audio.log (the audio service, which hosts the OCP audio plugin by
default, or ovos-media's own log if that daemon is enabled instead) for an extractor exception
around the time of the request. See OCP Plugins Reference for which extractor
handles which source, and confirm the right one is installed for the kind of link the skill
returned.
© Audio plays on the wrong output, or not at all¶
If a stream extracted fine but nothing (or the wrong device) makes sound, this is the same class of problem as Troubleshooting Stage 6's audio sink failure, not a media-specific bug:
- Run the hardware and mixer checks in Troubleshooting → Prove the microphone and speaker
work (
aplay -l,alsamixer,wpctl status/pactl list short sinks) to confirm the speaker is present, unmuted, and set as the default sink. - Check the OCP backend's audio configuration: the
preferred_audio_servicesorder it uses to pick a lower-level backend (shipped defaultmpv,vlc,simple), described in OCP Audio Plugin. A missing or misconfigured backend in that list can leave OCP with nothing to hand the stream to.
In ovos-busmon, filter by ovos.common_play.status to see the
player's own state (playing, paused, stopped) regardless of whether sound is actually audible,
useful for telling apart "OCP thinks it's playing" (an audio sink problem) from "OCP never
started playing" (extractor or search problem, (a)/(b) above).
Read next: Troubleshooting & Debugging Related: OCP Pipeline · Media Skills (OCP) · OCP Plugins Reference · OCP Audio Plugin