Closed sharpened-ferret closed 4 days ago
Please share the output of getAlbum.view
. My best guess is that the id
returned for a song is misbehaving (or an entire song is null/undefined/etc).
Sure. So far it's happened with all albums I've tried.
I hadn't looked at the getAlbum.view
response in detail before, but Funkwhale seems to be using numbers for numeric values, compared to everything being wrapped as strings in the Subsonic API example.
Not sure if that could be what's causing it?
{
"subsonic-response": {
"album": {
"id": 335,
"artistId": 282,
"name": "Punisher",
"artist": "Phoebe Bridgers",
"created": "2024-09-21T23:53:02.000Z",
"duration": 2437,
"playCount": 72,
"coverArt": "al-335",
"genre": "",
"year": 2020,
"songCount": 11,
"song": [
{
"id": 1324,
"isDir": "false",
"title": "DVD Menu",
"album": "Punisher",
"artist": "Phoebe Bridgers",
"track": 1,
"discNumber": 1,
"contentType": "audio/ogg",
"suffix": "ogg",
"path": "Phoebe Bridgers/Punisher/1 - DVD Menu.ogg",
"duration": 69,
"created": "2024-09-22T00:35:48.000Z",
"albumId": 335,
"artistId": 282,
"type": "music",
"coverArt": "al-335",
"bitrate": 160,
"size": 1227749,
"year": 2020
},
{
"id": 1321,
"isDir": "false",
"title": "Garden Song",
"album": "Punisher",
"artist": "Phoebe Bridgers",
"track": 2,
"discNumber": 1,
"contentType": "audio/ogg",
"suffix": "ogg",
"path": "Phoebe Bridgers/Punisher/2 - Garden Song.ogg",
"duration": 219,
"created": "2024-09-21T23:53:02.000Z",
"albumId": 335,
"artistId": 282,
"type": "music",
"coverArt": "al-335",
"bitrate": 320,
"size": 6879818,
"year": 2020
},
{
"id": 1325,
"isDir": "false",
"title": "Kyoto",
"album": "Punisher",
"artist": "Phoebe Bridgers",
"track": 3,
"discNumber": 1,
"contentType": "audio/ogg",
"suffix": "ogg",
"path": "Phoebe Bridgers/Punisher/3 - Kyoto.ogg",
"duration": 184,
"created": "2024-09-22T00:35:49.000Z",
"albumId": 335,
"artistId": 282,
"type": "music",
"coverArt": "al-335",
"bitrate": 160,
"size": 3358400,
"year": 2020
},
{
"id": 1323,
"isDir": "false",
"title": "Punisher",
"album": "Punisher",
"artist": "Phoebe Bridgers",
"track": 4,
"discNumber": 1,
"contentType": "audio/ogg",
"suffix": "ogg",
"path": "Phoebe Bridgers/Punisher/4 - Punisher.ogg",
"duration": 189,
"created": "2024-09-22T00:30:59.000Z",
"albumId": 335,
"artistId": 282,
"type": "music",
"coverArt": "al-335",
"bitrate": 160,
"size": 3156693,
"year": 2020
},
{
"id": 1326,
"isDir": "false",
"title": "Halloween",
"album": "Punisher",
"artist": "Phoebe Bridgers",
"track": 5,
"discNumber": 1,
"contentType": "audio/ogg",
"suffix": "ogg",
"path": "Phoebe Bridgers/Punisher/5 - Halloween.ogg",
"duration": 271,
"created": "2024-09-22T00:49:09.000Z",
"albumId": 335,
"artistId": 282,
"type": "music",
"coverArt": "al-335",
"bitrate": 160,
"size": 4544669,
"year": 2020
},
{
"id": 1328,
"isDir": "false",
"title": "Chinese Satellite",
"album": "Punisher",
"artist": "Phoebe Bridgers",
"track": 6,
"discNumber": 1,
"contentType": "audio/ogg",
"suffix": "ogg",
"path": "Phoebe Bridgers/Punisher/6 - Chinese Satellite.ogg",
"duration": 217,
"created": "2024-09-22T00:49:11.000Z",
"albumId": 335,
"artistId": 282,
"type": "music",
"coverArt": "al-335",
"bitrate": 160,
"size": 3828197,
"year": 2020
},
{
"id": 1327,
"isDir": "false",
"title": "Moon Song",
"album": "Punisher",
"artist": "Phoebe Bridgers",
"track": 7,
"discNumber": 1,
"contentType": "audio/ogg",
"suffix": "ogg",
"path": "Phoebe Bridgers/Punisher/7 - Moon Song.ogg",
"duration": 277,
"created": "2024-09-22T00:49:10.000Z",
"albumId": 335,
"artistId": 282,
"type": "music",
"coverArt": "al-335",
"bitrate": 320,
"size": 9483919,
"year": 2020
},
{
"id": 1329,
"isDir": "false",
"title": "Savior Complex",
"album": "Punisher",
"artist": "Phoebe Bridgers",
"track": 8,
"discNumber": 1,
"contentType": "audio/ogg",
"suffix": "ogg",
"path": "Phoebe Bridgers/Punisher/8 - Savior Complex.ogg",
"duration": 241,
"created": "2024-09-22T00:49:12.000Z",
"albumId": 335,
"artistId": 282,
"type": "music",
"coverArt": "al-335",
"bitrate": 320,
"size": 8746347,
"year": 2020
},
{
"id": 1330,
"isDir": "false",
"title": "ICU",
"album": "Punisher",
"artist": "Phoebe Bridgers",
"track": 9,
"discNumber": 1,
"contentType": "audio/ogg",
"suffix": "ogg",
"path": "Phoebe Bridgers/Punisher/9 - ICU.ogg",
"duration": 190,
"created": "2024-09-22T00:49:13.000Z",
"albumId": 335,
"artistId": 282,
"type": "music",
"coverArt": "al-335",
"bitrate": 320,
"size": 6965118,
"year": 2020
},
{
"id": 1331,
"isDir": "false",
"title": "Graceland Too",
"album": "Punisher",
"artist": "Phoebe Bridgers",
"track": 10,
"discNumber": 1,
"contentType": "audio/ogg",
"suffix": "ogg",
"path": "Phoebe Bridgers/Punisher/10 - Graceland Too.ogg",
"duration": 236,
"created": "2024-09-22T00:49:14.000Z",
"albumId": 335,
"artistId": 282,
"type": "music",
"coverArt": "al-335",
"bitrate": 320,
"size": 8672227,
"year": 2020
},
{
"id": 1322,
"isDir": "false",
"title": "I Know the End",
"album": "Punisher",
"artist": "Phoebe Bridgers",
"track": 11,
"discNumber": 1,
"contentType": "audio/ogg",
"suffix": "ogg",
"path": "Phoebe Bridgers/Punisher/11 - I Know the End.ogg",
"duration": 344,
"created": "2024-09-22T00:05:53.000Z",
"albumId": 335,
"artistId": 282,
"type": "music",
"coverArt": "al-335",
"bitrate": 160,
"size": 6244536,
"year": 2020
}
]
},
"funkwhaleVersion": "1.4.0",
"status": "ok",
"type": "funkwhale",
"version": "1.16.0"
}
}
That would be why, yes. OpenSubsonic formalized this such that the ids are expected to be strings https://opensubsonic.netlify.app/docs/responses/child/ I can look into converting numbers to strings but ultimately I'd say Funkwhale is doing it wrong.
Okay, thanks. I'll chuck an issue their way in the meantime.
Thanks, that looks good
Expected Behavior
When clicking on an album, the page for that album will load
Current Behavior
When clicking to load an album page, the renderer fails, causing the entire application to display as a white box and requiring it to be closed and restarted. (See the below image, with devtools open)
The network activity log shows two of the Subsonic API calls (for Artist and AlbumList2) not loaded, but they seem to have been cancelled rather than failed, and those resources are reachable on the media server, so I don't think that's the cause.
The error from the JS console stack trace points to code referring to "AlbumDetailContent", so I assume it's erroring when processing the response to the subsonic "getAlbum" call.
Steps to Reproduce
Possible Solution
Given the error from
startWith("disc-")
in the JS renderer file, I assume some code is passing a non-string to a field that expects a string.Context
No response
Application version
0.10.1
Operating System and version
WIndows 10 desktop
Server and Version
Funkwhale 1.4.0
Node Version (if developing locally)
No response