My Player Stopped Working: A Diagnostic
Work through these in order. They are arranged by how often each turns out to be the cause, so the early ones are worth checking even if they look too obvious.
1. Is the player on every page?
The most common cause by a distance.
Open a second page on your site with AjaxPress deactivated. Is the player there? If not, it lives in page content, and content is exactly what gets replaced during navigation. No setting can preserve it.
Fix: move it to a footer template, header, or site-wide widget area. Most radio plugins have a sticky or floating mode that does this.
2. Does your selector match?
Open the browser console on your site and run:
document.querySelectorAll('#your-selector').length
| Result | Meaning |
|---|---|
0 | Selector is wrong — re-inspect the player |
1 | Correct |
2 or more | Too broad — will move things you did not intend |
3. Did you mark the wrapper or just the audio tag?
Marking only <audio> preserves the audio and leaves the play button, volume slider and title behind. Sound continues but the controls stop working — or vanish.
Fix: mark the outermost element containing every part of the player.
4. Two players at once?
An identity problem. AjaxPress could not tell that the player on the new page is the same one already playing, so it kept both.
Usually caused by a stream URL with a cache-busting parameter (?t=1736301234), or an id that changes per page.
<div id="radio-bar" data-persist-key="live-radio">
5. Player moved somewhere unexpected?
Expected behaviour, not a fault. Preserved players are moved into #ajaxpress-persist, a fixed-position container at the end of <body>, so they leave their original parent.
Symptom: “the widget just moves up the page.”
#radio-bar {
position: fixed;
bottom: 0; left: 0; right: 0;
z-index: 10;
}
Also rewrite any CSS scoped to the old parent — .site-footer .radio-player { … } no longer applies.
6. Player visible but unresponsive?
Inspect the preserved element and check for inline visibility: hidden, opacity: 0 or pointer-events: none. This is a known issue.
#ajaxpress-persist [data-ajaxpress-lifted] {
visibility: visible !important;
opacity: 1 !important;
pointer-events: auto !important;
}
Other known issues
| Symptom | Status |
|---|---|
| Player does not start on a page you excluded | Known — ajaxpress:ready does not fire on excluded pages |
| Player renders only after a second click | Known, reported with Mediastream |
| Player stops when reaching a page without one | Intended — continuity follows your content |
| Player does not follow into wp-admin | Intended — the dashboard is never part of the SPA |
Reporting it
Email [email protected] with:
- The plugin or theme that renders your player
- A URL where we can see it live
- The selector you configured
- Which of the six steps above you have already tried
A live URL is worth more than any description — it is usually the difference between a same-day answer and a week of back-and-forth.