Plexamp suddenly no longer works on any of my computers

For some reason Plexamp no longer plays on any of my computers (all running ArchLinux KDE), I can’t access my servers nor can I even log into my account in any way. I have the Plexamp image v4.2.1 from the AUR repo. My server version is Version 1.26.2.5797 on a Raspberry Pi 4B running the 64-bit Raspbian, the server is also running in Docker

This is what I get in the logs

May 31, 2022 22:02:17.736 [Javascript] INFO - PubSub: Connection broken to plex.tv, reconnecting.
May 31, 2022 22:02:32.693 [Javascript] INFO - PubSub: Connection broken to plex.tv, reconnecting.
May 31, 2022 22:02:33.594 [Javascript] INFO - Discovery: Fetching hubs for library null server null refreshing from cloud false.
May 31, 2022 22:02:34.641 [Javascript] INFO - Auth: Requesting PIN.
May 31, 2022 22:02:34.641 [0xaa32aa40] DEBUG - Networking: Create request 28: (POST https://plex.tv/api/v2/pins?strong=true).
May 31, 2022 22:02:34.873 [0x9dbfb640] DEBUG - Networking: Completed request 28: (POST https://plex.tv/api/v2/pins?strong=true) with code -59 (have 0 bytes) in 231 ms.
May 31, 2022 22:02:34.873 [Javascript] ERROR - Auth: Could not get PIN HTTP status -59
1 Like

Error 59 is CURLE_SSL_CIPHER, which means “Couldn’t use specified cipher

Since Plexamp should be using its own libcurl and associated libraries, there’s probably something amiss with the install (or the AUR repo itself, which I don’t have much of an idea about).

It happens with the official appimage too. I downloaded it and ran it and it too does the same thing

1 Like

Hey @elan I’m seeing the exact same issue (Error 59). I’ve never used the AUR version but only the AppImage. It all worked fine for me until yesterday. Please help!

I can also confirm this issue on my system (Arch updated as of writing).
Both the AppImage from the AUR and downloaded from plexamp.com has the same problem.

I suspect that the AppImage might not be as self-contained as what we’d hoped @elan. If this is manifesting on all Arch Linux installs, it probably points to libcurl from the underlying OS being used. As of writing, this is libcurl/7.83.1 on a fully upgraded Arch system.

Is there some way for you to log what version of libcurl is used on application initialisation?

Plexamp already does log:

Jun 05, 2022 22:25:57.716 [0x0b290600] INFO - BASS: Curl version is 7.74.0 (protocols: dict file http https mqtt; ssl: SecureTransport; libz: 1.2.11; DNS: threaded).

The ldd command might show what system libraries it’s using, or lsof on a running process.

I’m pretty sure it doesn’t use system libcurl as all other applications using the system lib work fine. I’m not too familiar with the inner workings of AppImages, but lld on the appimage doesn’t work since it’s not a dynamic executable directly. However lsof on the running process shows that it uses these libs at least:

Plexamp.A 9838 ======  mem    REG  254,1   259968 14070668 /usr/lib/libfuse.so.2.9.9
Plexamp.A 9838 ======  mem    REG  254,1  2104984 14028175 /usr/lib/libc.so.6
Plexamp.A 9838 ======  mem    REG  254,1   100184 14072830 /usr/lib/libz.so.1.2.12
Plexamp.A 9838 ======  mem    REG  254,1    14368 14028226 /usr/lib/libpthread.so.0
Plexamp.A 9838 ======  mem    REG  254,1    14360 14028186 /usr/lib/libdl.so.2
Plexamp.A 9838 ------  mem    REG  254,1   228376 14028158 /usr/lib/ld-linux-x86-64.so.2

libCurl uses just libc and libz as far as I’m aware. So possibly a libc incompatibility??

$ curl --version
curl 7.83.1 (x86_64-pc-linux-gnu) libcurl/7.83.1 OpenSSL/1.1.1o zlib/1.2.12 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.2 libpsl/0.21.1 (+libidn2/2.3.0) libssh2/1.10.0 nghttp2/1.47.0

In any case, I’m guessing updating libcurl would solve the issue anyways, since the version bundled with PlexAmp is quite old (7.74 was released in December 2020). It’s also worth mentioning that this version contains numerous CVEs so an update would do good :slight_smile:

2 Likes

I was so excited to start using plexamp to then be hit by this on the computer I’d like to use it the most. Is there not a workaround?

I’m guessing that many people are currently affected by this problem @elan, at least all the Arch Linux users and probably for all its derivative distros too. Do you think you could do a release with an upgraded libcurl version as @LudvigH suggested?

It should be self-contained, so I’m still confused as to why that would solve the issue. I’d prefer to understand what’s going on before going and updating deps, which is a decent amount of work.

I dug into the chrome developer tools and debugged what I could. It appears the app might be failing on the internet reachability test. The reachability test URL is set to “/”, which is getting translated to a file:/// check and failing.

HEAD file:/// net::ERR_FILE_NOT_FOUND
(anonymous)	@	/tmp/.mount_Plexam9E…app.asar/index.js:2
t.fetch	@	/tmp/.mount_Plexam9E…app.asar/index.js:2
_checkInternetReachability	@	/tmp/.mount_Plexam9E…app.asar/index.js:2
i.__trace__	@	/tmp/.mount_Plexam9E…app.asar/index.js:2
setTimeout (async)		
(anonymous)	@	/tmp/.mount_Plexam9E…app.asar/index.js:2
(anonymous)	@	/tmp/.mount_Plexam9E…app.asar/index.js:2
Promise.catch (async)		
_checkInternetReachability	@	/tmp/.mount_Plexam9E…app.asar/index.js:2
i.__trace__	@	/tmp/.mount_Plexam9E…app.asar/index.js:2
setTimeout (async)		
(anonymous)	@	/tmp/.mount_Plexam9E…app.asar/index.js:2
(anonymous)	@	/tmp/.mount_Plexam9E…app.asar/index.js:2

Edit: I should mention I am stuck on the login screen.

Hmm, it may or may not be the same issue, hard to tell without Plexamp logs. I think the file:/// thing is a red herring.

Good point.

Somebody posted on Reddit that the issue is with the Arch Linux libcups 2.4.2-1 package.

Indeed it is, I browsed to /var/cache/pacman/pkg and installed the older libcups package: sudo pacman -U libcups-1:2.4.1-1-x86_64.pkg.tar.zst (to downgrade to 2.4.1-1). Restarted plexamp. Plexamp successfully logged me in and is playing music.

I tried the latest libcups package (2.4.2-2 which contains a TLS patch from today, June 9, 2022). Same behavior with the -59 error.

1 Like

wow that is super bizarre, given that you can’t print (yet??) from Plexamp :laughing:

I wonder if the update pulls in other associated libraries or files which impact (must be the case).

I can confirm doing this fixed the error for me!

The new libcups-2.4.2 source added support for OpenSSL and the library is now linking against OpenSSL. Older versions only had support for gnutls. I created an Arch issue [1] to track the issue and included the PKGBUILD fix in the ticket.

  1. FS#75016 : libcups 2.4.2 links to OpenSSL ... libcups 2.4.1 linked to libgnutls.so

Upstream commited the fix to the Arch package repository to use gnutls. If users upgrade to at least extra/libcups 1:2.4.2-3 then Plexamp should be working normally.

4 Likes

Brilliant, thanks so much!

1 Like

All fixed, thanks for all your digging @trolocsis!

2 Likes