Sync terminates early

Issue description:

Sync gets through albums and songs and then terminates when starting to sync artists.

Logs: (3.3 MB)


Additional information:

The new sync UI looks great!

Artists are done first. There’s no error in this all the songs are synced. I suppose you see the end of sync message that can take time
You still have tons of errors due to the star endpoint.

Ahh, I see. I’m not seeing any songs right now - my library is almost empty. So maybe I just need to wait a while?

Yeah, I have been planning to implement a real star endpoint to get those saved on the server. Haven’t gotten to it yet. That will hopefully let me wipe my phone library and fully re-sync it without losing track of starred songs.

You probably have enabled some filters ? All I know is the log extract that only shows the end of the songs sync.

This is also interesting because artists shows 0 for the whole time sync is running. This is the log from the start of sync. (955.9 KB)

With all filters disabled (good catch!), it looks like the last sync wasn’t successful. The song, artist, and album counts are much smaller than I’d expect them to be from a current sync.

Edit: screenshot during sync

2023-10-10 01:17:03.049 T:SubsonicLogger
a4.m0: Non-null value ‘starred’ was null at $.subsonic-response.searchResult3.artist[0].starred
at xn.d.l(Unknown Source:41)
at app.symfonik.provider.subsonic.models.SearchResult_ArtistJsonAdapter.c(Unknown Source:110)
at xn.b.c(Unknown Source:20)
at xb.m.v(Unknown Source:184)
at xb.m.m(Unknown Source:12)
at b6.f.h(Unknown Source:213)
at xb.d0.R(Unknown Source:11524)
at xb.q.v(Unknown Source:16)
at wo.a.q(Unknown Source:8)
at Source:112)
at java.util.concurrent.ThreadPoolExecutor.runWorker(
at java.util.concurrent.ThreadPoolExecutor$

Your return null as the stared value for the artists, breaking the contract and so no artists.

But I need to find out why the sync did continue it should have stopped, this is not normal.

But TL;DR; once again your custom server is the cause :wink:

1 Like

Thanks for catching that. I incorrectly assumed OpenAPI allowed null for optional fields. I should go back and rebuild my server on generated bindings.

Fixed, thanks again for your help and patience.