jeffvli / feishin

A modern self-hosted music player.
https://feishin.vercel.app
GNU General Public License v3.0
1.99k stars 78 forks source link

Linux AppImage 0.6.0 Home Screen Error #531

Closed timaeos closed 3 months ago

timaeos commented 3 months ago

Expected Behavior

The Home Screen should show the layout with the recommended Albums and Favorites as in Prior Versions

Current Behavior

Currently the Home shows an error:

Something went wrong
Missing ":albumId" param

image

React Router caught the following error during render Error: Missing ":albumId" param
    at s (renderer.js:2:1814968)
    at renderer.js:2:1820673
    at Array.map (<anonymous>)
    at A (renderer.js:2:1820542)
    at a.PosterCard (renderer.js:282:96)
    at yi (renderer.js:2:2409563)
    at yc (renderer.js:2:2466418)
    at Cs (renderer.js:2:2455570)
    at Ms (renderer.js:2:2455498)
    at ms (renderer.js:2:2455361) 

Steps to Reproduce

  1. Install the AppImage using the AppImageLauncher

  2. Launch the AppImage from the KDE Application Launcher

  3. Application Opens to the Home Screen with the Error

Possible Solution (Not obligatory)

Likely just a parameter that isn't available but I haven't looked at the code yet

Context

The issue isn't too large of an issue since I can still access the albums through the albums menu but the Home menu is non-functional

Your Environment

Operating System: Fedora Linux 39 KDE Plasma Version: 5.27.10 KDE Frameworks Version: 5.115.0 Qt Version: 5.15.12 Kernel Version: 6.7.7-200.fc39.x86_64 (64-bit) Graphics Platform: Wayland Processors: 16 × AMD Ryzen 7 2700X Eight-Core Processor Memory: 31.3 GiB of RAM Graphics Processor: AMD Radeon RX 590 Series Manufacturer: Gigabyte Technology Co., Ltd. Product Name: X470 AORUS GAMING 7 WIFI

kgarner7 commented 3 months ago

Probably related to https://github.com/jeffvli/feishin/issues/378 (unfortunately I personally don't have a good recommendation for solutions)

kbridger commented 3 months ago

Can I grab some logs during launch to help pin the problem down? I can't even launch it let alone configure a server (unless the server config is stored outside the AppImage in some way)? If the serve exists somewhere in my profile I can delete it and try launching again.

jeffvli commented 3 months ago

@kbridger Did you mean to post in #530?

kbridger commented 3 months ago

Oops yes, sorry!

Merconix commented 3 months ago

Just in case it's any help, I have the same problem on Windows 11, only introduced in v0.6.0 (which came as a surprise to me, as I had auto updates disabled!) I saw the potential workaround in #378 of removing the store_song key from local storage to reset the filter, but that key doesnt exist at all on my end.

Hiding "Most Played" from home fixes it for me for now, but presumably that's just because it isn't fetching data from an album with the missing data. Interestingly, I can use all 3 view types for my full list of albums and tracks, which the original poster of #378 didn't seem to be able to.

timaeos commented 3 months ago

It looks like this issue is specifically impacting the Most Played list for me. I was able to trace it back to commit 69cb63a8b0293cc61cc8e21a885047ac4871fcf7 where it chooses albumId if it's a Jellyfin Server and the Library Item is a Song. It says that this commit is to fix the mostPlayed carousel as well. @kgarner7 did you have any background on what specifically this commit was fixing?

timaeos commented 3 months ago

I basically just did a hacky job on https://github.com/jeffvli/feishin/blob/340344b791bbbed7f23ede2fb1d6170c22ebcef7/src/renderer/api/jellyfin/jellyfin-normalize.ts#L137

This sets the albumId to the same as the item.Id if item.AlbumId doesn't exist. Effectively saying that a single song is it's own album (explicitly for Jellyfin Servers since this appears to be primarily a Jellyfin issue)

albumId: item.AlbumId ? item.AlbumId : item.Id,

I don't like it but it worked for me https://github.com/timaeos/feishin/commit/657854b0d0fc60c0d41805af754a62188ddfb2a4

kgarner7 commented 3 months ago

I basically just did a hacky job on

https://github.com/jeffvli/feishin/blob/340344b791bbbed7f23ede2fb1d6170c22ebcef7/src/renderer/api/jellyfin/jellyfin-normalize.ts#L137

This sets the albumId to the same as the item.Id if item.AlbumId doesn't exist. Effectively saying that a single song is it's own album (explicitly for Jellyfin Servers since this appears to be primarily a Jellyfin issue)

albumId: item.AlbumId ? item.AlbumId : item.Id,

I don't like it but it worked for me timaeos@657854b

Yeah, Jellyfin sometimes has songs with no album (also causing the linked issue). I'll see how that behaves (or a dummy address)

timaeos commented 3 months ago

Creating a Dummy "Unknown Album" ID might work. I tried setting it to an empty string but that just takes you to the default album route. Placing an unknown album ID (e.g. unknown) doesn't bring up a page. item.Id appears to be the most graceful way without rewriting a bunch of stuff at the moment since that will still take you to an album view (though it doesn't have a valid playlist on it)

Maybe setting it to 00000000000000000000000000000000 and creating a bespoke page with all songs without an albumId would eventually be a sufficient fallback. Seems a bit much for this at the moment, though

kgarner7 commented 3 months ago

By the way, what is your music organization? As far as I can tell, this happens if you have songs only at the top level of the music directory (albums are folder-based). https://jellyfin.org/docs/general/server/media/music/

timaeos commented 3 months ago

Hmm sure enough it is the top level directory files that appear to be impacted (since they don't belong to any particular album). I'll test tossing them into a "Singles" folder which likely treat them as all belonging to the same "Singles" album.

Yeah, that appears to have placed them in the same "Album" which is basically equivalent to the fallback behaviour I mentioned so we should be good now. The item.Id change does provide a graceful fallback for what I'd consider is a misconfigured Jellyfin directory structure (especially since the #378 issue workaround can get into a non-functional player state). I'm going to go ahead and close out this issue as a directory structure miss for the Jellyfin server.

Just a note to others that might encounter this and need to reorganize their collections, remember to clear the cache for Feishin so that it updates after you rearrange your top-level files into a folder structure.