Long Time Plex User in Need of Help

Server Version#: Plex Media Server v1.42.1.10060-4e8b05daf - Docker Docker Container (LinuxServer.io) x86_64 - build: linux-x86_64 debian
Player Version#: Plex Web Version 4.147.1
<If providing server logs please do NOT turn on verbose logging, only debug logging should be enabled>

PMS is running in a Docker container on Linux Debian 9 VM hosted on latest version of Proxmox. TrueNAS is running as a second VM on same Proxmox host and all HBAs are passed through to TrueNAS. TrueNAS is used to manage pools, datasets, and Samba shares.

The Samba shares are mounted in the Linux VM and mapped to containers as needed. All folder and file permissions are set correctly, both at the host VM level and inside the Docker containers.

Today I confirmed the Plex database is not corrupt by creating a temporary container to get access to the Plex specific SQLITE3 libraries and dependencies, and copying over the database to this temp container so that I could run the database integrity test. I could not run in the Plex container due to database locks.

I’m still having issues with a couple of things now. 1) Plex crashes daily on me. Restarting the Plex container brings it back online. 2) Newly added content video and audio sources are missing in Plex details. That is, the media and related meta data get added to the Plex UI, the media is in the folder where it’s expected to be, and the all permissions are correct. As a result, I cannot play anything recently added to Plex.

I did verify that the manually checking the video and audio using the ffmpeg tools. I forgot the exact commands now, but everything checked out when I manually checked earlier today. Logs are showing a lot of the following errors which would explain why I can’t play recently added media. Also, I have tried to manually analyze the media that’s having issues and forcing meta data updates to no avail.

Sep 14, 2025 19:16:51.919 [140603226745656] ERROR - [Req#cb17b/Transcode] MDE: video has neither a video stream nor an audio stream

I’ve been running a PMS since like 2013 without hardly any issues. This move from TrueNAS on bare metal to Proxmox has been a series of constant hurdles. Is this a SMB issue? I tested my SMB shares today as well and the tests all passed. I had NFS shares setup for a while before realizing that I needed SMB, after which I switched back. That presented a number of issues and I’m wondering if this is related.

Logs:

pms_logs.zip (348.4 KB)

What kind of help are you expecting? Debian 9 has been EOL for around 6 years.

Many better options for running Plex
LXC on the Proxmox host
Debian 12/13 VM without docker
Even Docker on Proxmox

The database looks like it has severe logical corruption which can’t be checked or corrected via SQLITE pragma integrity_check or vacuum.

Find your database backups and check when the last one was created, if more than 3 days ago the corruption has existed for a while. You can copy that over the current one (with Plex not running) and try again. I would do the pair com.plexapp.plugins.library.db and com.plexapp.plugins.library.blobs.db.

I’m running Debian 12 VM, not 9, apologies. Proxmox is Debian 13.

Docker on Proxmox isn’t officially supported and I’m heavily invested in Docker at this stage. The VM with PMS also hosts my media stack, so there are 2 dozen docker containers. It’s only PMS that’s I’m having issues with. And the whole reason I moved to Proxmox (from TrueNAS) was for isolation of services I run. LXC shares the kernel with the Proxmox host defeating the want for isolation.

Running the SQLITE3 integrity check against my Plex database didn’t return any issues. I’m beginning to wonder if it’s how I have my data organized. Data is temporarily stored in the incomplete folder, then moved to the completed folder when successfully extracted, and then it gets moved to the media folder. I used this config before, but on TrueNAS bare metal install and there was no noticeable lag in moving data between the completed folder and the media folder. Could this be a factor?

@TerranPhil

  1. You turned DEBUG logging off. We’re not getting the info.
  2. SQLITE3, alone, cannot find this.
Sep 15, 2025 00:29:51.144 [140603138775864] ERROR - XML: parser\00
Sep 15, 2025 00:29:51.144 [140603138775864] ERROR - XML: error :\00
Sep 15, 2025 00:29:51.144 [140603138775864] ERROR - XML: Start tag expected, '<' not found\00
Sep 15, 2025 00:29:51.144 [140603138775864] ERROR - XML: Database exception: sqlite3_statement_backend::prepare: locking protocol for SQL\00
Sep 15, 2025 00:29:51.144 [140603138775864] ERROR - XML: ^\00
Sep 15, 2025 00:29:51.144 [140603138775864] ERROR - Error parsing content.
Sep 15, 2025 00:29:51.144 [140603138775864] ERROR - Error parsing XML: Error parsing file.

Please enable DEBUG logging.
Restart PMS
Wait 3 minutes
Download the Logs ZIP file
Attach that ZIP here please.

Updated logs attached. Thanks

Plex Media Server Logs_2025-09-15_12-31-54.zip (721.0 KB)

Thanks for the logs, I can see more now.

 15, 2025 12:18:34.425 [139776536296248] DEBUG - Scanner: Processing directory /media/music/X (parent: yes)
Sep 15, 2025 12:18:34.426 [139776536296248] DEBUG - Skipping over directory 'X', as nothing has changed; removing 0 media items from map.
Sep 15, 2025 12:18:34.426 [139776536296248] DEBUG - Activity: updated activity 51c3605b-d1a2-41a1-89c4-cb2a48da41aa - completed 99.0% - Scanning Music
Sep 15, 2025 12:18:34.426 [139776536296248] DEBUG - Activity: updated activity 51c3605b-d1a2-41a1-89c4-cb2a48da41aa - completed 99.0% - Scanning Music
Sep 15, 2025 12:20:00.006 [139776570784568] DEBUG - Auth: Refreshing tokens inside the token-based authentication filter.
Sep 15, 2025 12:20:00.006 [139776570784568] DEBUG - [HCl#42] HTTP requesting GET https://plex.tv/api/v2/server/access_tokens?auth_token=xxxxxxxxxxxxxxxxxxxx&unknownToken=xxxxxxxxxxxxxxxxxxxx
Sep 15, 2025 12:20:01.618 [139776530701112] DEBUG - [HttpClient/HCl#42] HTTP/1.1 (1.6s) 200 response from GET https://plex.tv/api/v2/server/access_tokens?auth_token=xxxxxxxxxxxxxxxxxxxx&unknownToken=xxxxxxxxxxxxxxxxxxxx
Sep 15, 2025 12:20:01.623 [139776570784568] DEBUG - MyPlex: updating with 14 access tokens
Sep 15, 2025 12:20:01.623 [139776570784568] DEBUG - [HCl#43] HTTP requesting GET https://plex.tv/api/v2/server/users?auth_token=xxxxxxxxxxxxxxxxxxxx
Sep 15, 2025 12:20:02.492 [139776530701112] DEBUG - [HttpClient/HCl#43] HTTP/1.1 (0.9s) 200 response from GET https://plex.tv/api/v2/server/users?auth_token=xxxxxxxxxxxxxxxxxxxx (reused)
Sep 15, 2025 12:20:02.497 [139776522165048] DEBUG - [HCl#44] HTTP requesting GET https://plex.tv/api/v2/server/users/subscriptions?auth_token=xxxxxxxxxxxxxxxxxxxx
Sep 15, 2025 12:20:03.419 [139776530701112] DEBUG - [HttpClient/HCl#44] HTTP/1.1 (0.9s) 200 response from GET https://plex.tv/api/v2/server/users/subscriptions?auth_token=xxxxxxxxxxxxxxxxxxxx (reused)
Sep 15, 2025 12:20:03.425 [139776522165048] DEBUG - MyPlex: using cached data for request for https://plex.tv/api/v2/server/users/services?auth_token=xxxxxxxxxxxxxxxxxxxx
Sep 15, 2025 12:20:03.425 [139776570784568] DEBUG - Auth: authenticating user as guest
Sep 15, 2025 12:20:03.425 [139776532925240] DEBUG - Request: [172.28.10.1:38576 (Allowed Network (Subnet))] GET /library/sections (4 live) #9710 GZIP Signed-in Token (TerranPhil)
Sep 15, 2025 12:20:03.425 [139776570784568] DEBUG - Completed: [172.28.10.1:38576] 200 GET /library/sections (4 live) #9710 GZIP 0ms 949 bytes (pipelined: 1)
Sep 15, 2025 12:20:03.426 [139776568675128] DEBUG - Auth: authenticating user as guest
Sep 15, 2025 12:20:03.426 [139776532925240] DEBUG - Request: [172.28.10.1:38576 (Allowed Network (Subnet))] GET /library/sections/1/all?type=1&sort=addedAt%3Adesc&addedAt%3E%3E=1757959503 (4 live) #e8ef Page 0-499 GZIP Signed-in Token (TerranPhil)
Sep 15, 2025 12:20:03.426 [139776532925240] DEBUG - [Req#e8ef] Setting container serialization range to [0, 499] (total=-1)
Sep 15, 2025 12:20:03.427 [139776568675128] DEBUG - Completed: [172.28.10.1:38576] 200 GET /library/sections/1/all?type=1&sort=addedAt%3Adesc&addedAt%3E%3E=1757959503 (4 live) #e8ef GZIP Page 0-499 0ms 661 bytes (pipelined: 2)
Sep 15, 2025 12:20:03.429 [139776570784568] DEBUG - Auth: authenticating user as guest
Sep 15, 2025 12:20:03.429 [139776532925240] DEBUG - Request: [172.28.10.1:38576 (Allowed Network (Subnet))] GET /library/sections/2/all?type=4&sort=addedAt%3Adesc&addedAt%3E%3E=1757959507 (4 live) #e8f0 Page 0-499 GZIP Signed-in Token (TerranPhil)
Sep 15, 2025 12:20:03.429 [139776532925240] DEBUG - [Req#e8f0] Setting container serialization range to [0, 499] (total=-1)
Sep 15, 2025 12:20:03.435 [139776570784568] DEBUG - Completed: [172.28.10.1:38576] 200 GET /library/sections/2/all?type=4&sort=addedAt%3Adesc&addedAt%3E%3E=1757959507 (4 live) #e8f0 GZIP Page 0-499 6ms 4171 bytes (pipelined: 3)
Sep 15, 2025 12:20:03.436 [139776568675128] DEBUG - Auth: authenticating user as guest
Sep 15, 2025 12:20:03.436 [139776532925240] DEBUG - Request: [172.28.10.1:38576 (Allowed Network (Subnet))] GET /library/metadata/20117?includeChildren=1 (4 live) #e8f1 GZIP Signed-in Token (TerranPhil)
Sep 15, 2025 12:20:03.438 [139776532925240] DEBUG - [Req#e8f1] It took 10.000000 ms to retrieve 224 items.
Sep 15, 2025 12:20:03.438 [139776532925240] DEBUG - There were 1 top-level paths for Andor.
Sep 15, 2025 12:20:03.442 [139776568675128] DEBUG - Completed: [172.28.10.1:38576] 200 GET /library/metadata/20117?includeChildren=1 (4 live) #e8f1 GZIP 6ms 13927 bytes (pipelined: 4)
Sep 15, 2025 12:20:03.445 [139776570784568] DEBUG - Auth: authenticating user as guest
Sep 15, 2025 12:20:03.445 [139776532925240] DEBUG - Request: [172.28.10.1:38576 (Allowed Network (Subnet))] GET /library/metadata/20118/children (4 live) #e8f4 GZIP Signed-in Token (TerranPhil)
Sep 15, 2025 12:20:03.448 [139776570784568] DEBUG - Completed: [172.28.10.1:38576] 200 GET /library/metadata/20118/children (4 live) #e8f4 GZIP 3ms 4116 bytes (pipelined: 5)
Sep 15, 2025 12:20:03.449 [139776568675128] DEBUG - Auth: authenticating user as guest
Sep 15, 2025 12:20:03.449 [139776532925240] DEBUG - Request: [172.28.10.1:38576 (Allowed Network (Subnet))] GET /library/metadata/20134/children (4 live) #e8f9 GZIP Signed-in Token (TerranPhil)
Sep 15, 2025 12:20:03.452 [139776568675128] DEBUG - Completed: [172.28.10.1:38576] 200 GET /library/metadata/20134/children (4 live) #e8f9 GZIP 3ms 4400 bytes (pipelined: 6)
Sep 15, 2025 12:20:04.624 [139776496851768] DEBUG - [MediaProviderManager] Refreshing media providers
Sep 15, 2025 12:20:04.624 [139776496851768] DEBUG - [MediaProviderManager/Response::fetch/HCl#45] HTTP requesting GET https://plex.tv/media/providers
Sep 15, 2025 12:20:05.083 [139776530701112] DEBUG - [HttpClient/HCl#45] HTTP/1.1 (0.5s) 200 response from GET https://plex.tv/media/providers (reused)
Sep 15, 2025 12:20:05.083 [139776496851768] DEBUG - [MediaProviderManager] discovered cloud provider (Metadata)
Sep 15, 2025 12:20:05.083 [139776496851768] DEBUG - [MediaProviderManager] loading cloud provider details (Metadata) (alive: 1)
Sep 15, 2025 12:20:05.083 [139776496851768] DEBUG - [MediaProviderManager] we had 1 cloud providers online, we now have 1
Sep 15, 2025 12:20:05.083 [139776496851768] DEBUG - [MediaProviderManager] cloud provider (Metadata) is online and available
Sep 15, 2025 12:20:05.083 [139776496851768] DEBUG - [MediaProviderManager] Media provider refresh complete
Sep 15, 2025 12:20:08.121 [139776581217080] DEBUG - Jobs: '/usr/lib/plexmediaserver/Plex Media Scanner' exit code for process 396 is 254 (failure)
Sep 15, 2025 12:20:08.121 [139776503180088] ERROR - XML: Entity: line 1:\00
Sep 15, 2025 12:20:08.121 [139776503180088] ERROR - XML: parser\00
Sep 15, 2025 12:20:08.121 [139776503180088] ERROR - XML: error :\00
Sep 15, 2025 12:20:08.121 [139776503180088] ERROR - XML: Start tag expected, '<' not found\00
Sep 15, 2025 12:20:08.121 [139776503180088] ERROR - XML: Database exception: sqlite3_statement_backend::prepare: locking protocol for SQL\00
Sep 15, 2025 12:20:08.121 [139776503180088] ERROR - XML: ^\00
Sep 15, 2025 12:20:08.121 [139776503180088] ERROR - Error parsing content.
Sep 15, 2025 12:20:08.121 [139776503180088] ERROR - Error parsing XML: Error parsing file.
Sep 15, 2025 12:20:08.121 [139776503180088] DEBUG - Native Scanner: Executed Match stage in 95.10 sec.
Sep 15, 2025 12:20:08.121 [139776503180088] DEBUG - Native Scanner: Executed Add to Database stage in 0.00 sec.
Sep 15, 2025 12:20:08.121 [139776503180088] DEBUG - Native Scanner: Executed Media Analysis stage in 0.00 sec.

It is having trouble in Music, just as it gets to the letter X.

There is (hopefully) minor DB damage.
I don’t know if my tool will fix it or not but it’s worth a try if you’re up to it?

Look at the README . I have a lot of example & instructions in there.

1 Like

Enter command # -or- command name (4 char min) : 5

Exporting current databases using timestamp: 2025-09-15_22.09.12
Exporting Main DB
Exporting Blobs DB
Successfully exported the main and blobs databases.
Start importing into new databases.
Importing Main DB.
Runtime error near line 1830451: database is locked (5)
Error 1 from Plex SQLite while importing from ā€˜./dbtmp/library.plexapp.sql-2025-09-15_22.09.12’
Cannot continue.

Phil,

What do you have running?

DBRepair checks to make certain PMS is stopped. (see below)

Why not use option 2 / ā€˜auto’ ? (check, repair, reindex)

      # Repair (Same as optimize but assumes damaged so doesn't check)
      5|repa*)

        # Check if PMS running
        if IsRunning; then
          WriteLog "Repair - FAIL - PMS runnning"
          Output   "Unable to repair databases.  PMS is running."
          continue
        fi

        # Is there enough room to work
        if ! FreeSpaceAvailable; then
          WriteLog "Import  - FAIL - Insufficient free space on $AppSuppDir"
          Output   "Error:   Unable to repair database.  Insufficient free space available on $AppSuppDir"
          continue
        fi

Are there hung processes ?

Option 2 was the first one I tried which returned same error as with option 5. I made a copy of my appdata/plex folder then created a new one. Running new PMS setup now and there is definitely something wrong with my configuration as it is super slow adding movies and updating metadata. I’ve been using Plex since 2012 and I’ve never had an issue like this. I’m sure it’s something to do with my configuration. Thank you for your help.

Parsing errors, on the fly analysis errors, all of this on a fresh install.

Plex Media Server.1.log (1.3 MB)

Phil,

Sep 16, 2025 05:09:08.082 [140420456311608] INFO - Plex Media Server v1.42.1.10060-4e8b05daf - Docker Docker Container (LinuxServer.io) x86_64 - build: linux-x86_64 debian - GMT -06:00
Sep 16, 2025 05:09:08.082 [140420456311608] INFO - Linux version: 6.1.0-37-amd64, language: en-US
Sep 16, 2025 05:09:08.082 [140420456311608] INFO - Processor: 4-core QEMU Virtual CPU version 2.5+

Docker in a QEMU (VM) ?

Please explain?

Isolation, networking, and Docker is not officially supported on LXCs. I have several VMs running Docker without issue. Even the VM/Docker with PMS has a bunch of other media related containers running without issue. Plex is the only one giving me a hard time. (and I’m not suggesting this is a Plex issue, very much doubt it actually).

Just went and checked my VMs in PVE. All but the one hosting PMS are using CPU Type ā€œHostā€. It should have also been using ā€œHostā€. Will change and see if that helps any.

@TerranPhil

I have one ProxMox machine (4x4 box for support purposes only)
It created the LXC using TTECK helper scripts

I can then place DBRepair in that container nd run it.

[chuck@lizum plexmediaserver.2035]$ ssh root@192.168.0.25
Linux pve 6.8.4-2-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.4-2 (2024-04-10T17:36Z) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Sep 16 23:41:09 2025 from 192.168.0.13
root@pve:~# ./DBRepair.sh  stop auto start exit
 

 
      Database Repair Utility for Plex Media Server  (Debian GNU/Linux 12 (bookworm))
                       Version v1.11.09
 
 
[2025-09-16 23.41.39] PMS already stopped.
 
[2025-09-16 23.41.39] Automatic Check,Repair,Index started.
[2025-09-16 23.41.39] 
[2025-09-16 23.41.39] Checking the PMS databases
[2025-09-16 23.41.40] Check complete.  PMS main database is OK.
[2025-09-16 23.41.40] Check complete.  PMS blobs database is OK.
[2025-09-16 23.41.40] 
[2025-09-16 23.41.40] Exporting current databases using timestamp: 2025-09-16_23.41.39
[2025-09-16 23.41.40] Exporting Main DB
[2025-09-16 23.41.42] Exporting Blobs DB
[2025-09-16 23.41.42] Successfully exported the main and blobs databases.
[2025-09-16 23.41.42] Start importing into new databases.
[2025-09-16 23.41.42] Importing Main DB.
[2025-09-16 23.41.47] Importing Blobs DB.
[2025-09-16 23.41.47] Successfully imported databases.
[2025-09-16 23.41.47] Verifying databases integrity after importing.
[2025-09-16 23.41.48] Verification complete.  PMS main database is OK.
[2025-09-16 23.41.48] Verification complete.  PMS blobs database is OK.
[2025-09-16 23.41.48] Saving current databases with '-BACKUP-2025-09-16_23.41.39'
[2025-09-16 23.41.48] Making repaired databases active
[2025-09-16 23.41.48] Repair complete. Please check your library settings and contents for completeness.
[2025-09-16 23.41.48] Recommend:  Scan Files and Refresh all metadata for each library section.
[2025-09-16 23.41.48] 
[2025-09-16 23.41.48] Backing up of databases
[2025-09-16 23.41.48] Backup current databases with '-BACKUP-2025-09-16_23.41.48' timestamp.
[2025-09-16 23.41.48] Reindexing main database
[2025-09-16 23.41.50] Reindexing main database successful.
[2025-09-16 23.41.50] Reindexing blobs database
[2025-09-16 23.41.50] Reindexing blobs database successful.
[2025-09-16 23.41.50] Reindex complete.
[2025-09-16 23.41.50] Automatic Check, Repair/optimize, & Index successful.
 
[2025-09-16 23.41.50] Starting PMS.
[2025-09-16 23.41.50] Started PMS
 
root@pve:~# 

Make absolute certain PMS stops.

ps -ef | grep -i plex

If it’s not stopping then that’s a problem I’ve been seeing on some hosts with PMS.

You can shutdown with kill -15 $(pidof 'Plex Media Server')
This is the manual stop.

If it’s the case with you too, I’ll see if I can improve dealing with stubborn PMS machines.

I’ve got PMS running in an LXC now. Used the helper script to do the installation and figured out the user mapping to bind an smb share to the container. Everything is loading super fast now and as expected. Thanks for your help.