Issue when syncing library using Subsonic source from an Airsonic backend

Hi,

I’m posting to raise an issue with how Symfonium communicates with Subsonic when backed is Airsonic (FYI Airsonic follows v 1.15 of AirSonic API).

Log is attached below
debug.log (77.9 KB)

I have also checked the logs of Airsonic server, and it appears that the query sent is not supported, and is triggering an exception in the backend :
2022-04-15 18:10:17.229 ERROR — o.a.p.s.LoggingExceptionResolver : xxx.xxx.xxx.xxx: An exception occurred while loading http://xxxx:xxxx/rest/search3?query=%22%22&songOffset=-1&songCount=10&albumOffset=0&albumCount=0&artistOffset=0&artistCount=0&v=1.14.0&c=Symfonium&f=json&t=&s=&u=

java.lang.ArrayIndexOutOfBoundsException: -1
at org.airsonic.player.service.search.SearchServiceImpl.search(SearchServiceImpl.java:80) ~[classes!/:10.6.2-RELEASE]
at org.airsonic.player.controller.SubsonicRESTController.search3(SubsonicRESTController.java:769) ~[classes!/:10.6.2-RELEASE]

I have then played with PostMan a bit to try to see what could be wrong, and this exception stack is triggered when setting “songOffset” to -1 (as you seem to do in your payload), any other value gets back 200 code.

On a side note, by keeping “query” = “” in the payload, I only managed to get empty result (adding some characters, I did get some songs).

Hope that helps ! :slight_smile:

Thanks for the details.

That’s a bad news that search with empty strings does not work as this is the only way to have everything properly and efficiently. This would probably be easier if you could open an issue at Airsonic so that they support that.

Will check to fix the negative song offset.

If empty string works for other backends, I’m surprised it wouldn’t work also for airsonic, which is supposed to be an open source fork of subsonic… So maybe it just is that I failed at something when trying my request… Do you have easy access to a airsonic backend ?

In any case if empty string doesn’t work to get all, then I will see and open an issue at Airsonic I guess…

I’ve tested and it fails I’ve opened

There’s no real workarounds to be able to sync all the data even in slow mode, the only way to get most songs is via songfromgenre but there’s no support for empty genre.

OK ! I’ll use Jellyfin in the meantime, I’ve :+1: your issue, let’s hope the devs over there see it !
In any case, thanks for checking that, and answering in here !
All the best with Symfonium, it looks awesome, and fills a gap for a nice and modern looking app to stream self hosting music ! :hugs:

1 Like

Depending on your needs and metadata love, I’d recommend Plex or Kodi. Jellyfin have plenty of bugs with music.

Plex is nice for transcoding if needed, if not Kodi have the best metadata handling and better tools for differential sync too.

As much as I don’t want to use Plex, they have the best metadata indeed, so I will settle on that.
Thanks again ! :slight_smile: