Plexamp 4.50.6 Linux AppImage: BASS codec plugins loaded from wrong directory

Player: Plexamp Desktop 4.50.6 x86_64 AppImage
OS: CachyOS / Arch Linux
PMS: 1.43.3.10896

Plexamp can connect to the server, browse the music library, and create play queues, but every FLAC track immediately fails and is skipped.

At startup Plexamp reports six BASS plugin load failures:

BASS: Error [plugin = BASS_PluginLoad(file, flags)] - 2
BASS: Error [plugin = BASS_PluginLoad(file, flags)] - 2
BASS: Error [plugin = BASS_PluginLoad(file, flags)] - 2
BASS: Loaded OPUS plug-in version 1.0.0.0
BASS: Error [plugin = BASS_PluginLoad(file, flags)] - 2
BASS: Error [plugin = BASS_PluginLoad(file, flags)] - 2
BASS: Error [plugin = BASS_PluginLoad(file, flags)] - 2
Starting Plexamp 4.50.6 - linux Rolling Release

I traced a fresh AppImage launch with strace. Plexamp attempts to open the codec plugins from:

$APPDIR/usr/lib/libbass_aac.so
$APPDIR/usr/lib/libbassalac.so
$APPDIR/usr/lib/libbassflac.so
$APPDIR/usr/lib/libbassape.so
$APPDIR/usr/lib/libbass_mpc.so
$APPDIR/usr/lib/libbassdsd.so

All return ENOENT.

However, the 4.50.6 AppImage actually packages those files under:

$APPDIR/usr/lib/plexamp/libbass_aac.so
$APPDIR/usr/lib/plexamp/libbassalac.so
$APPDIR/usr/lib/plexamp/libbassflac.so
$APPDIR/usr/lib/plexamp/libbassape.so
$APPDIR/usr/lib/plexamp/libbass_mpc.so
$APPDIR/usr/lib/plexamp/libbassdsd.so

As a test, I extracted the AppImage and added symlinks in usr/lib pointing to the copies in usr/lib/plexamp.

With only those symlinks added, startup changes to:

BASS: Loaded AAC plug-in version 2.4.7.0
BASS: Loaded ALAC plug-in version 2.4.1.0
BASS: Loaded FLAC plug-in version 2.4.5.5
BASS: Loaded OPUS plug-in version 1.0.0.0
BASS: Loaded APE plug-in version 2.4.0.1
BASS: Loaded MPC plug-in version 2.4.1.2
BASS: Loaded DSD plug-in version 2.4.1.3

FLAC playback then works normally:

BASS: Opening stream ...
Cache: Using RAM buffer ... container flac ...
Audio: State changed from stopped to playing.

So this appears reproducible as an AppImage resource/plugin-path issue: the codec libraries are present in the package, but BASS is looking one directory above where they are packaged.

I also tested adding usr/lib/plexamp to LD_LIBRARY_PATH; that did not fix it, consistent with Plexamp/BASS explicitly trying the usr/lib/... paths rather than this being normal dynamic-loader dependency resolution.

One other Linux AppImage issue I ran into: Plexamp 4.50.6 would fail to start on CachyOS/Wayland with Could not create default EGL display: EGL_BAD_PARAMETER.

It looks like the AppImage is picking up its bundled libwayland-client which has fallen out of sync with newer Mesa/EGL packages on rolling release distros. Forcing Plexamp to use the system Wayland client fixes it completely:

LD_PRELOAD=/usr/lib/libwayland-client.so.0 /usr/bin/plexamp

Upstream issues:
Tauri #15665
Tauri #11988

I’d recommending using Flatpak, we may not do AppImage long-term.