Skip to content

Instantly share code, notes, and snippets.

@objectiveSee
Last active February 28, 2026 02:51
Show Gist options
  • Select an option

  • Save objectiveSee/cc6c47e7959c22c16a81282e2cf637c0 to your computer and use it in GitHub Desktop.

Select an option

Save objectiveSee/cc6c47e7959c22c16a81282e2cf637c0 to your computer and use it in GitHub Desktop.

API Bug: cache_gapless_set returning placeholder data for all channels (offline downloads broken)

Date: 2026-02-27

Related: Follow-up to the bug report filed on 2026-02-24 regarding cache_gapless_set returning placeholder data. That issue was reported as fixed, but the problem persists across all channels for the offline cache endpoint. The live streaming endpoint (/api/gapless) is working correctly.

Affected Endpoint

GET /api/cache_gapless_set — used for offline downloads

Working Endpoint (for comparison)

GET /api/gapless — used for live streaming — returns correct data

Reproduction

# BROKEN — offline cache endpoint (all channels)
curl -s "https://api.radioparadise.com/api/cache_gapless_set?chan=0&bitrate=2&cache_action=cache_block"
curl -s "https://api.radioparadise.com/api/cache_gapless_set?chan=1&bitrate=2&cache_action=cache_block"
curl -s "https://api.radioparadise.com/api/cache_gapless_set?chan=2&bitrate=2&cache_action=cache_block"
curl -s "https://api.radioparadise.com/api/cache_gapless_set?chan=3&bitrate=2&cache_action=cache_block"

# Also broken with buffer_ahead:
curl -s "https://api.radioparadise.com/api/cache_gapless_set?chan=0&bitrate=2&cache_action=buffer_ahead"

# WORKING — live streaming endpoint
curl -s "https://api.radioparadise.com/api/gapless?chan=0&bitrate=4&numSongs=5&event=0"

Results

Broken: cache_gapless_set (all channels, both cache_block and buffer_ahead)

Channel Songs Status
0 - Main Mix 8 All placeholder
1 - Mellow Mix 8 All placeholder
2 - RockIt! 7 All placeholder
3 - Globalized 8 All placeholder

Every song returns:

{
    "song_id": "0",
    "artist": "Commercial-free",
    "title": "Listener-supported",
    "type": null,
    "rating": 0,
    "user_rating": 0,
    "ratings_num": 0,
    "cover_art": "covers/l/103.jpg"
}

Note: In the previous report (2026-02-24), channel 2 (Rock) was the only channel that worked. Now all 4 channels are broken.

Working: /api/gapless (live streaming)

{
    "song_id": 53162,
    "artist": "Eric Hilton",
    "title": "Madame Asha",
    "type": "M"
}

Real song IDs, real metadata, valid type values.

Impact

  • Offline playback is completely broken. type: null fails client-side validation (expects a non-null string), causing "Invalid song format in playlist" errors.
  • Downloads succeed (audio files are valid), but the playlist can't be loaded for playback because the metadata is all placeholder data.
  • Even if the type: null issue were worked around, users would see "Commercial-free — Listener-supported" for every track.

Summary

The fix that was applied after the 2026-02-24 report appears to have resolved the issue for the live streaming path (/api/gapless) but not for the offline cache path (/api/cache_gapless_set). Both cache_action=cache_block and cache_action=buffer_ahead are affected, across all 4 channels.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment