DBRepair development

ALL:

I have temporarily removed the Windows executable.

As I was resolving the issue for lordmage, I found something else which looked minor.

The more I dug into it, the more I realized I hadn’t correctly implemented the new Windows modules which mimic the linux style DBRepair is written in.

Linux and MacOS are ok but please use caution. I would manually shutdown PMS just to be safe.

I’ve fixed most of the smaller issues I continue to find during continued testing but have to rewrite:

  • IsRuning - see if PMS is running or shutdown
  • Start - start PMS
  • Stop - stop PMS

Without a reliable IsRunning, it’s not safe to let DBRepair have access to the DBs if PMS is possibly running. This is priority 1

While I’m doing it, Start & Stop are too messy in Windows so they get full overhaul too.

I’m VERY sorry about this but it does give me justification to swear like a truck driver at Windows all weekend! :rofl:

I have other fixes already complete. As soon as I get Windows controls stable, I’ll release 0.1999.02

Thanks for your understanding.

well there was an update to windows when i woke up
so i ran it again this time it sort of works at least it ran :smiley:
and i see your working on other issues but i figured i report the log
looks to me it sort of worked but i see now why it had some hicc-ups waiting on further ill check back in a few days


2026-07-10 12.33.57 -- ============================================================
2026-07-10 12.33.57 -- Session start: Host is Windows 10 (Build 22631)
2026-07-10 12.34.11 -- Stop    - START
2026-07-10 12.34.15 -- Auto     - START
2026-07-10 12.34.25 -- Repair  - Export databases - PASS
2026-07-10 12.34.28 -- Repair  - Import - PASS
2026-07-10 12.34.28 -- Repair  - Verify main database - PASS
2026-07-10 12.34.28 -- Repair  - Verify blobs database - PASS
2026-07-10 12.34.28 -- Reindexing Main DB
2026-07-10 12.34.28 -- Reindexing Blobs DB
2026-07-10 12.34.29 -- Reindexing complete.
2026-07-10 12.34.29 -- Moving current DBs to DBTMP and making new databases active
2026-07-10 12.34.29 -- Auto     - PASS
2026-07-10 12.34.48 -- Start   - START
2026-07-10 12.34.48 -- Start   - PASS
2026-07-10 22.40.29 - ============================================================
2026-07-10 22.40.29 - Session start. Fri Jul 10 22:40:29 2026
2026-07-10 22.40.29 - ============================================================
2026-07-10 22.40.38 - Start/Stop feature not available
2026-07-10 22.41.00 - CheckDB - Checking basic integrity - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-10 22.41.00 - CheckDB - Checking Indexes and FTS tables - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-10 22.41.00 - CheckDB - Full check complete - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-10 22.41.00 - Check   - Check C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db DB - FAIL
2026-07-10 22.41.00 - CheckDB - Checking basic integrity - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-10 22.41.00 - CheckDB - Checking Indexes and FTS tables - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-10 22.41.00 - CheckDB - Full check complete - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-10 22.41.00 - Check   - Check Blobs DB - FAIL
2026-07-10 22.41.00 - Check   - FAIL
2026-07-10 22.41.00 - Check   - CheckFTS Main DB - START
2026-07-10 22.41.00 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Check   - FTS Check - No FTS tables found
2026-07-10 22.41.00 - Check   - CheckFTS Blobs DB - START
2026-07-10 22.41.00 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.00 - Check   - FTS Check - No FTS tables found
2026-07-10 22.41.31 - Repair  - START
2026-07-10 22.41.31 - CheckDB - Checking basic integrity - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library.db-DBREPAIR-2026-07-10_22.41.31
2026-07-10 22.41.31 - CheckDB - Checking basic integrity - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library.db-DBREPAIR-2026-07-10_22.41.31
2026-07-10 22.41.31 - DoIndex - FAIL (Index index_title_sort_icu creation failed: no such collation sequence: icu_root)
2026-07-10 22.41.32 - CheckDB - Checking basic integrity - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library.blobs.db-DBREPAIR-2026-07-10_22.41.31
2026-07-10 22.41.32 - CheckDB - Checking basic integrity - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library.blobs.db-DBREPAIR-2026-07-10_22.41.31
2026-07-10 22.41.32 - DoIndex - FAIL (Index index_title_sort_icu creation failed: no such collation sequence: icu_root)
2026-07-10 22.41.32 - Repair  - ABORTED - Pipeline Failures
2026-07-10 22.41.43 - CheckDB - Checking basic integrity - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-10 22.41.43 - CheckDB - Checking Indexes and FTS tables - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-10 22.41.43 - CheckDB - Full check complete - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-10 22.41.43 - Check   - Check C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db DB - FAIL
2026-07-10 22.41.43 - CheckDB - Checking basic integrity - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-10 22.41.43 - CheckDB - Checking Indexes and FTS tables - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-10 22.41.43 - CheckDB - Full check complete - C:\Users\Lord//AppData/Local/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-10 22.41.43 - Check   - Check Blobs DB - FAIL
2026-07-10 22.41.43 - Check   - FAIL
2026-07-10 22.41.43 - Check   - CheckFTS Main DB - START
2026-07-10 22.41.43 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Main DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Check   - FTS Check - No FTS tables found
2026-07-10 22.41.43 - Check   - CheckFTS Blobs DB - START
2026-07-10 22.41.43 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Blobs DB: FTS Check: Check   - MISSING
2026-07-10 22.41.43 - Check   - FTS Check - No FTS tables found
2026-07-10 22.41.52 - Check   - FAIL
2026-07-10 22.41.54 - Auto    - START
2026-07-10 22.41.54 - Auto    - COMPLETED SUCCESS
2026-07-10 22.42.23 - Exit    - Retain temp files.

@lordmage

I pulled the 0.1999.01 Windows binary .

I discovered it had some critical flaws.
I didn’t want to risk anyone’s PMS database.

I’ve already corrected that , plus some other , issues with 0.1999.02

ALL:

I finally got time to run against my absolutely worst DB.
( 127 GB, broken SQLite3 B-Tree (how SQLite manages data )).

It did the repair in 30 minutes on an older Intel E5-2690v4.
By comparison, DBRepair.sh is still cranking on it (3+ hours later)

I hope to release 0.1999.02 this weekend.

So far, the v0.1999.02 release notes are:

v0.1999.02

  • IsRunning - Correctly detects if PMS is running on all platforms
  • Start/Stop - Now operational on all platforms
  • Spellcheck - Corrected issue with Sqlite ‘spellcheck1’ extension initialization.
    - Also corrected issues with all other virtual and their shadow tables.
  • Manual Config - Corrected overzealus requirement for ‘root’ on manual configurations (–databases)
  • Vacuum - Vacuum command now available. (EXPERIMENTAL)
  • Repair - Put more of the output behind the Verbose option.
  • Index - Index command now available. (EXPERIMENTAL. Always performed automatically during Repair)
  • Bloat Check - Bloat check breaks out immediately after finding enough (10) bloated records in the DB.
    This significantly improves performance.
  • Windows - Path to PMS installation directory now queries the Windows registry instead of hunting for it.
    performing limited search if registry location not valid installation.
  • Pathnames - Windows pathnames now correctly show \ for the directory separator.
    Linux, MacOS, and FreeBSD retain their / directory separator.
  • Cleanup - Fixed false error reporting when deleting temporary work files (dbtmp/*)
  • Internal - When traversing the Sqlite b-tree, prevent getting caught in an infinite loop (internal to
    Sqlite)
  • Spinner - When operating at the console, the spinner no longer spews newlines when not in verbose mode
  • Spam - When dealing with a severely damaged DB, won’t spam the console/output with “WARNING” messages.
    These messages obscurred usability and slowed down processing. One message is enough.

Notes about Vacuum and Reindex:

  • Because DBRepair no longer operates directly on your live DB, it takes as long to vacuum or reindex as it does repair. (Repair does it all because of how it works)

Hi Chuck!
Just a quick question from a non-expert: Do you see a way to remove the generated chapter images using DBRepair (without doing the “Plex Dance”)?

ALL:

I’m just about ready to give you the updated DBRepair (‘.02’) to kick the tires with.

  1. Release notes are tracking as predicted. A few additions to it.
  2. Improved Host identification (internal + visible segment)

Before I lock this down and folks start getting accustomed to the updated menu layout, I would like feedback (it’s now or never.. haha)

If the command names need revising, PLEASE say so now.

As seen on my Mac mini.

chuck@tirol dbrepair % build/pc-darwin-arm64-release/bin/DBRepair 



            Database Repair Utility for Plex Media Server  (macOS 26.5.2 (Tahoe))
                       Version 0.1999.02 (Jul 17 2026)


Select

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.
  4 - 'vacuum'    - Remove empty space from database without optimizing.
  5 - 'repair'    - Repair/Optimize databases.
  6 - 'reindex'   - Rebuild database indexes.
  7 - 'start'     - Start PMS

 10 - 'show'      - Show logfile.
 11 - 'status'    - Report status of PMS (run-state and databases).
 12 - 'history'   - Show command history of this session.
 13 - 'revert'    - Revert DBs to immediately before history index.

 21 - 'prune'     - Remove old image files from PhotoTranscoder cache & all temp files left by PMS.
 42 - 'ignore'    - Ignore duplicate/constraint errors.

 98 - 'quit'      - Quit immediately.  Keep all temporary files.
 99 - 'exit'      - Exit with cleanup options.

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

Changes:

  1. Temp files now mark time to the millisecond because the program + SSDs can be sub-second execution which would collide with the old “history” tracking.

  2. Pretty host info shown as result of better host detection.

  3. New commands: History & Revert (replacement for “Undo”)

  4. Slight regrouping.

Documentation:

I would like suggestions on how best to document DBRepair.

  • The simple README.md is no longer sufficient.
  • Some of the commands deserve about a (small) paragraph to properly explain what’s happening (History/Revert are one example)

Please share any other comments you feel need mentioning.

My plan is to post the ZIP files this weekend .

Those are stored in the filesystem and not in the database.

Comments, for what they are worth :slight_smile:

Maybe the help file could be built into app, with a menu choice “help” ??

Wouldn’t bloat it too much I suspect?

Probably needs explaining to dummies like me what the various options such as “vacuum”, “repair”, “reindex” “prune” and “ignore” actually do, and why I would or wouldn’t use them and in what order? :smiley:

If “repair” is the equivalent of the old “auto” plus more … why would I ever want to do a “vacuum” or a “prune” on their own? Why would I want to run “ignore”?

I’m sure it’s all obvious to you as the dev - but it’s not necessarily obvious, to me anyway!

I still wouldn’t mind having an “auto” command which did like a “stop/repair/start” that could be scheduled from the command line maybe, as a thought?

Thanks again for continuing to work on this, looks like it’s coming along nicely and it IS much appreciated!

:grin:

What happened to ‘Auto’ which, as I recall, did pretty much everything?

I also would have loved ‘auto’ to also contain stop/start and therefore be the quick/default option for general regular optimisation.

…something like:

Select

  0 - 'auto'.     - performs 1,2,3,4,5,6,7

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.

[...]

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

Also, what happened to ‘2’?

@JCHH

“Auto” will return. At this point of the development, the extra wrapper of the automation adds a lot of complexity if we’re trying to figure out what went wrong.

Adding start/stop to auto is a good idea. Thank you.

ALL:

Binaries obsolete in favor of v0.1999.03 below:

This is the updated menu.

chuck@tirol dbrepair % build/pc-darwin-arm64-release/bin/DBRepair 



            Database Repair Utility for Plex Media Server  (macOS 26.5.2 (Tahoe))
                       Version 0.1999.02 (Jul 18 2026)


Select

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.
  4 - 'vacuum'    - Remove empty space from database without optimizing.
  5 - 'repair'    - Repair/Optimize databases.
  6 - 'reindex'   - Rebuild database indexes.
  7 - 'start'     - Start PMS

 10 - 'show'      - Show logfile.
 11 - 'status'    - Report status of PMS (run-state and databases).
 12 - 'history'   - Show command history of this session.
 13 - 'revert'    - Revert DBs to immediately before history index.

 21 - 'prune'     - Remove old image files from PhotoTranscoder cache & all temp files left by PMS.
 42 - 'ignore'    - Ignore duplicate/constraint errors.

 98 - 'quit'      - Quit immediately.  Keep all temporary files.
 99 - 'exit'      - Exit with cleanup options.

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

Enjoy,
C.

@ChuckPA

Log from run of 0.1999.02 just now, ARM64 version (Mac Studio M2):

I (think) I did a “stop”, “check”, “repair”, “check”, “show”, “config” and then “start”.

Last login: Sun Jul 19 12:53:20 on ttys000
/Users/Shared/PlexDBRepair/DBRepair\ v0.1999.02/DBRepair ; exit;                                                                                                
stephenh@MacStudio ~ % /Users/Shared/PlexDBRepair/DBRepair\ v0.1999.02/DBRepair ; exit;



            Database Repair Utility for Plex Media Server  (macOS 15.7.7 (Sequoia))
                       Version 0.1999.02 (Jul 18 2026)


Select

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.
  4 - 'vacuum'    - Remove empty space from database without optimizing.
  5 - 'repair'    - Repair/Optimize databases.
  6 - 'reindex'   - Rebuild database indexes.
  7 - 'start'     - Start PMS

 10 - 'show'      - Show logfile.
 11 - 'status'    - Report status of PMS (run-state and databases).
 12 - 'history'   - Show command history of this session.
 13 - 'revert'    - Revert DBs to immediately before history index.

 21 - 'prune'     - Remove old image files from PhotoTranscoder cache & all temp files left by PMS.
 42 - 'ignore'    - Ignore duplicate/constraint errors.

 98 - 'quit'      - Quit immediately.  Keep all temporary files.
 99 - 'exit'      - Exit with cleanup options.

Enter command # -or- command name (4 char min) : stop
 
Stopping PMS. (60 second max delay)
Stopped PMS.

Select

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.
  4 - 'vacuum'    - Remove empty space from database without optimizing.
  5 - 'repair'    - Repair/Optimize databases.
  6 - 'reindex'   - Rebuild database indexes.
  7 - 'start'     - Start PMS

 10 - 'show'      - Show logfile.
 11 - 'status'    - Report status of PMS (run-state and databases).
 12 - 'history'   - Show command history of this session.
 13 - 'revert'    - Revert DBs to immediately before history index.

 21 - 'prune'     - Remove old image files from PhotoTranscoder cache & all temp files left by PMS.
 42 - 'ignore'    - Ignore duplicate/constraint errors.

 98 - 'quit'      - Quit immediately.  Keep all temporary files.
 99 - 'exit'      - Exit with cleanup options.

Enter command # -or- command name (4 char min) : check
 
Checking the PMS databases...
Database is damaged: malformed inverted index for FTS4 table main.fts4_metadata_titles_icu
  PMS main database is damaged.
  PMS blobs database is OK.

Checking the PMS databases... complete.

Select

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.
  4 - 'vacuum'    - Remove empty space from database without optimizing.
  5 - 'repair'    - Repair/Optimize databases.
  6 - 'reindex'   - Rebuild database indexes.
  7 - 'start'     - Start PMS

 10 - 'show'      - Show logfile.
 11 - 'status'    - Report status of PMS (run-state and databases).
 12 - 'history'   - Show command history of this session.
 13 - 'revert'    - Revert DBs to immediately before history index.

 21 - 'prune'     - Remove old image files from PhotoTranscoder cache & all temp files left by PMS.
 42 - 'ignore'    - Ignore duplicate/constraint errors.

 98 - 'quit'      - Quit immediately.  Keep all temporary files.
 99 - 'exit'      - Exit with cleanup options.

Enter command # -or- command name (4 char min) : repair
 
--- Processing Main DB ---
Rebuilding and Verifying Main DB structure...
Rebuilding indexes from source schema...
Rebuilding FTS Virtual Tables for Main...

--- Processing Blobs DB ---
Rebuilding and Verifying Blobs DB structure...
Rebuilding indexes from source schema...
Rebuilding FTS Virtual Tables for Blobs...

Making DB(s) active
Swap complete. Live databases updated.

Select

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.
  4 - 'vacuum'    - Remove empty space from database without optimizing.
  5 - 'repair'    - Repair/Optimize databases.
  6 - 'reindex'   - Rebuild database indexes.
  7 - 'start'     - Start PMS

 10 - 'show'      - Show logfile.
 11 - 'status'    - Report status of PMS (run-state and databases).
 12 - 'history'   - Show command history of this session.
 13 - 'revert'    - Revert DBs to immediately before history index.

 21 - 'prune'     - Remove old image files from PhotoTranscoder cache & all temp files left by PMS.
 42 - 'ignore'    - Ignore duplicate/constraint errors.

 98 - 'quit'      - Quit immediately.  Keep all temporary files.
 99 - 'exit'      - Exit with cleanup options.

Enter command # -or- command name (4 char min) : check
 
Checking the PMS databases...
  PMS main database is OK.
  PMS blobs database is OK.

Checking the PMS databases... complete.

Select

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.
  4 - 'vacuum'    - Remove empty space from database without optimizing.
  5 - 'repair'    - Repair/Optimize databases.
  6 - 'reindex'   - Rebuild database indexes.
  7 - 'start'     - Start PMS

 10 - 'show'      - Show logfile.
 11 - 'status'    - Report status of PMS (run-state and databases).
 12 - 'history'   - Show command history of this session.
 13 - 'revert'    - Revert DBs to immediately before history index.

 21 - 'prune'     - Remove old image files from PhotoTranscoder cache & all temp files left by PMS.
 42 - 'ignore'    - Ignore duplicate/constraint errors.

 98 - 'quit'      - Quit immediately.  Keep all temporary files.
 99 - 'exit'      - Exit with cleanup options.

Enter command # -or- command name (4 char min) : prune
 
Counting how many files can be removed...
No files found to prune.

Select

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.
  4 - 'vacuum'    - Remove empty space from database without optimizing.
  5 - 'repair'    - Repair/Optimize databases.
  6 - 'reindex'   - Rebuild database indexes.
  7 - 'start'     - Start PMS

 10 - 'show'      - Show logfile.
 11 - 'status'    - Report status of PMS (run-state and databases).
 12 - 'history'   - Show command history of this session.
 13 - 'revert'    - Revert DBs to immediately before history index.

 21 - 'prune'     - Remove old image files from PhotoTranscoder cache & all temp files left by PMS.
 42 - 'ignore'    - Ignore duplicate/constraint errors.

 98 - 'quit'      - Quit immediately.  Keep all temporary files.
 99 - 'exit'      - Exit with cleanup options.

Enter command # -or- command name (4 char min) : show
 
Displaying Session Log: /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/DBRepair.log
------------------------------------------------------------
2026-07-19 13.22.36 - ============================================================
2026-07-19 13.22.36 - Session start. Sun Jul 19 13:22:36 2026
2026-07-19 13.22.36 - ============================================================
2026-07-19 13.22.44 - RunSysCmd executing: 'TMPDIR=/tmp osascript -e 'tell app "Plex Media Server" to quit''
2026-07-19 13.22.44 - RunSysCmd: Command exited with status 0
2026-07-19 13.22.50 - Stop - PASS
2026-07-19 13.22.56 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.22.57 - CheckDB - FAIL - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db: malformed inverted index for FTS4 table main.fts4_metadata_titles_icu
2026-07-19 13.22.57 - CheckDB - Checking Indexes and FTS tables - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.22.57 - CheckDB - Full check complete - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.22.57 - Check   - Check /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db DB - FAIL
2026-07-19 13.22.57 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.22.57 - CheckDB - Checking Indexes and FTS tables - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.22.57 - CheckDB - Full check complete - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.22.57 - Check   - Check Blobs DB - PASS
2026-07-19 13.22.57 - Check   - FAIL
2026-07-19 13.22.57 - Check   - CheckFTS Main DB - START
2026-07-19 13.22.57 - GetSqlOutput - Prepare FAIL: table spellfix_metadata_titles has no column named spellfix_metadata_titles
2026-07-19 13.22.57 - Check   - FTS Check: spellfix_metadata_titles - PASS
2026-07-19 13.22.57 - GetSqlOutput - Prepare FAIL: table spellfix_tag_titles has no column named spellfix_tag_titles
2026-07-19 13.22.57 - Check   - FTS Check: spellfix_tag_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_metadata_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_tag_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_metadata_titles_icu - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_tag_titles_icu - PASS
2026-07-19 13.22.57 - Check   - CheckFTS Blobs DB - START
2026-07-19 13.22.57 - GetSqlOutput - Prepare FAIL: table spellfix_metadata_titles has no column named spellfix_metadata_titles
2026-07-19 13.22.57 - Check   - FTS Check: spellfix_metadata_titles - PASS
2026-07-19 13.22.57 - GetSqlOutput - Prepare FAIL: table spellfix_tag_titles has no column named spellfix_tag_titles
2026-07-19 13.22.57 - Check   - FTS Check: spellfix_tag_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_metadata_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_tag_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_metadata_titles_icu - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_tag_titles_icu - PASS
2026-07-19 13.23.11 - Repair  - START
2026-07-19 13.23.11 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library-DBREPAIR-2026-07-19_13-23-11-360.db
2026-07-19 13.23.11 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library-DBREPAIR-2026-07-19_13-23-11-360.db
2026-07-19 13.23.11 - FTSRebuild - Rebuilt fts4_metadata_titles
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_tag_titles
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_metadata_titles_icu
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_tag_titles_icu
2026-07-19 13.23.12 - Repair  - SUCCESS - Main DB Pipeline Complete
2026-07-19 13.23.12 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library.blobs-DBREPAIR-2026-07-19_13-23-11-360.db
2026-07-19 13.23.12 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library.blobs-DBREPAIR-2026-07-19_13-23-11-360.db
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_metadata_titles
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_tag_titles
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_metadata_titles_icu
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_tag_titles_icu
2026-07-19 13.23.12 - Repair  - SUCCESS - Blobs DB Pipeline Complete
2026-07-19 13.23.12 - Repair  - PUSH - Saved state to stack (Timestamp: 2026-07-19_13-23-11-360)
2026-07-19 13.23.12 - Repair  - MakeActive - Main DB updated to live (Timestamp: 2026-07-19_13-23-11-360)
2026-07-19 13.23.12 - Repair  - MakeActive - Blobs DB updated to live (Timestamp: 2026-07-19_13-23-11-360)
2026-07-19 13.23.12 - Repair  - Databases active: (Active Timestamp: 2026-07-19_13-23-11-360)
2026-07-19 13.23.24 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.23.25 - CheckDB - Checking Indexes and FTS tables - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.23.25 - CheckDB - Full check complete - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.23.25 - Check   - Check Main DB - PASS
2026-07-19 13.23.25 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.23.25 - CheckDB - Checking Indexes and FTS tables - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.23.25 - CheckDB - Full check complete - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.23.25 - Check   - Check Blobs DB - PASS
2026-07-19 13.23.25 - Check   - PASS
2026-07-19 13.23.25 - Check   - CheckFTS Main DB - START
2026-07-19 13.23.25 - GetSqlOutput - Prepare FAIL: table spellfix_metadata_titles has no column named spellfix_metadata_titles
2026-07-19 13.23.25 - Check   - FTS Check: spellfix_metadata_titles - PASS
2026-07-19 13.23.25 - GetSqlOutput - Prepare FAIL: table spellfix_tag_titles has no column named spellfix_tag_titles
2026-07-19 13.23.25 - Check   - FTS Check: spellfix_tag_titles - PASS
2026-07-19 13.23.25 - Check   - FTS Check: fts4_metadata_titles - PASS
2026-07-19 13.23.25 - Check   - FTS Check: fts4_tag_titles - PASS
2026-07-19 13.23.25 - Check   - FTS Check: fts4_metadata_titles_icu - PASS
2026-07-19 13.23.26 - Check   - FTS Check: fts4_tag_titles_icu - PASS
2026-07-19 13.23.26 - Check   - CheckFTS Blobs DB - START
2026-07-19 13.23.26 - GetSqlOutput - Prepare FAIL: table spellfix_metadata_titles has no column named spellfix_metadata_titles
2026-07-19 13.23.26 - Check   - FTS Check: spellfix_metadata_titles - PASS
2026-07-19 13.23.26 - GetSqlOutput - Prepare FAIL: table spellfix_tag_titles has no column named spellfix_tag_titles
2026-07-19 13.23.26 - Check   - FTS Check: spellfix_tag_titles - PASS
2026-07-19 13.23.26 - Check   - FTS Check: fts4_metadata_titles - PASS
2026-07-19 13.23.26 - Check   - FTS Check: fts4_tag_titles - PASS
2026-07-19 13.23.26 - Check   - FTS Check: fts4_metadata_titles_icu - PASS
2026-07-19 13.23.26 - Check   - FTS Check: fts4_tag_titles_icu - PASS
2026-07-19 13.23.30 - Prune   - START
2026-07-19 13.23.30 - Prune   - PASS
------------------------------------------------------------

Select

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.
  4 - 'vacuum'    - Remove empty space from database without optimizing.
  5 - 'repair'    - Repair/Optimize databases.
  6 - 'reindex'   - Rebuild database indexes.
  7 - 'start'     - Start PMS

 10 - 'show'      - Show logfile.
 11 - 'status'    - Report status of PMS (run-state and databases).
 12 - 'history'   - Show command history of this session.
 13 - 'revert'    - Revert DBs to immediately before history index.

 21 - 'prune'     - Remove old image files from PhotoTranscoder cache & all temp files left by PMS.
 42 - 'ignore'    - Ignore duplicate/constraint errors.

 98 - 'quit'      - Quit immediately.  Keep all temporary files.
 99 - 'exit'      - Exit with cleanup options.

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

--- [ DBRepair: Host Configuration Dump ] ---

  Version:            [0.1999.02]
  Os                  [1]
  Uid / Gid           [501:20]
  Username            [stephenh]
  Home Directory:     [/Users/stephenh]
  Host Type:          [macOS 15.7.7 (Sequoia)]
  Distro Name:        [macOS 15.7.7 (Sequoia)]
  Time Stamp:         [2026-07-19_13-23-42-655]
  Last User:          [None]
  Last Run:           [Never]

  Manual Config:      No
  Root Required:      No
  Scripted Mode:      No
  Ignore Errors:      No
  Remove Duplicates:  No
  Fail Status:        No
  Global Damaged:     No
 
  --- Main Database ---
  Path:               [/Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db]
  Checked:            Yes
  Damaged:            No
  Checked FTS:        Yes
  FTS Damaged:        No
  Bloated:            No
  Fragmented:         No
 
  --- Blobs Database ---
  Path:               [/Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db]
  Checked:            Yes
  Damaged:            No
  Checked FTS:        Yes
  FTS Damaged:        No
  Bloated:            No
  Fragmented:         No
 
  Owner UID/GID:      501:20
  Default Perms:      0644
  Stat Format:        [-f]
  Stat Bytes:         [%z]
  Stat Perms:         [%Lp]
 
  Package Dir:        [/Applications/Plex Media Server.app]
  SQLite Version:     [3.53.0]
  App Support Dir:    [/Users/stephenh/Library/Application Support]
  Database Dir:       [/Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases]
  Database Temp Dir:  [/Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/dbtmp]
  Main DB Path:       [/Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db]
  Blobs DB Path:      [/Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db]
  Cache Dir:          [/Users/stephenh/Library/Caches/PlexMediaServer/PhotoTranscoder]
  Log File:           [/Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/DBRepair.log]
  Pid File:           []
  Temp Dir (Local):   [/tmp]
  System Temp:        [/tmp]
 
  Sqlite3 Cache Size  [0]
  Sqlite3 Page Size   [0]
  DBRepair Notify Cmd []
 
  Pidof Utility:      [pgrep]
  FTS Query:          [SELECT name FROM sqlite_master WHERE sql LIKE '%FTS%';]
  Have Start/Stop:    (Yes)
  Start Command:      [TMPDIR=/tmp osascript -e 'tell app "Plex Media Server" to launch']
  Stop Command:       [TMPDIR=/tmp osascript -e 'tell app "Plex Media Server" to quit']
 
  --- Stack State ---
  Stack Top:          [0]
  Stack Count:        [1]
  Stack[ 0]:          2026-07-19_13-23-11-360 : Repair
------------------------------------------------------


Select

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.
  4 - 'vacuum'    - Remove empty space from database without optimizing.
  5 - 'repair'    - Repair/Optimize databases.
  6 - 'reindex'   - Rebuild database indexes.
  7 - 'start'     - Start PMS

 10 - 'show'      - Show logfile.
 11 - 'status'    - Report status of PMS (run-state and databases).
 12 - 'history'   - Show command history of this session.
 13 - 'revert'    - Revert DBs to immediately before history index.

 21 - 'prune'     - Remove old image files from PhotoTranscoder cache & all temp files left by PMS.
 42 - 'ignore'    - Ignore duplicate/constraint errors.

 98 - 'quit'      - Quit immediately.  Keep all temporary files.
 99 - 'exit'      - Exit with cleanup options.

Enter command # -or- command name (4 char min) : start
 
Starting PMS.
Started PMS.

Select

  1 - 'stop'      - Stop PMS.
  3 - 'check'     - Perform integrity check of database and FTS indexes.
  4 - 'vacuum'    - Remove empty space from database without optimizing.
  5 - 'repair'    - Repair/Optimize databases.
  6 - 'reindex'   - Rebuild database indexes.
  7 - 'start'     - Start PMS

 10 - 'show'      - Show logfile.
 11 - 'status'    - Report status of PMS (run-state and databases).
 12 - 'history'   - Show command history of this session.
 13 - 'revert'    - Revert DBs to immediately before history index.

 21 - 'prune'     - Remove old image files from PhotoTranscoder cache & all temp files left by PMS.
 42 - 'ignore'    - Ignore duplicate/constraint errors.

 98 - 'quit'      - Quit immediately.  Keep all temporary files.
 99 - 'exit'      - Exit with cleanup options.

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

Log:

2026-07-19 13.22.36 - ============================================================
2026-07-19 13.22.36 - Session start. Sun Jul 19 13:22:36 2026
2026-07-19 13.22.36 - ============================================================
2026-07-19 13.22.44 - RunSysCmd executing: 'TMPDIR=/tmp osascript -e 'tell app "Plex Media Server" to quit''
2026-07-19 13.22.44 - RunSysCmd: Command exited with status 0
2026-07-19 13.22.50 - Stop - PASS
2026-07-19 13.22.56 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.22.57 - CheckDB - FAIL - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db: malformed inverted index for FTS4 table main.fts4_metadata_titles_icu
2026-07-19 13.22.57 - CheckDB - Checking Indexes and FTS tables - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.22.57 - CheckDB - Full check complete - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.22.57 - Check   - Check /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db DB - FAIL
2026-07-19 13.22.57 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.22.57 - CheckDB - Checking Indexes and FTS tables - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.22.57 - CheckDB - Full check complete - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.22.57 - Check   - Check Blobs DB - PASS
2026-07-19 13.22.57 - Check   - FAIL
2026-07-19 13.22.57 - Check   - CheckFTS Main DB - START
2026-07-19 13.22.57 - GetSqlOutput - Prepare FAIL: table spellfix_metadata_titles has no column named spellfix_metadata_titles
2026-07-19 13.22.57 - Check   - FTS Check: spellfix_metadata_titles - PASS
2026-07-19 13.22.57 - GetSqlOutput - Prepare FAIL: table spellfix_tag_titles has no column named spellfix_tag_titles
2026-07-19 13.22.57 - Check   - FTS Check: spellfix_tag_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_metadata_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_tag_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_metadata_titles_icu - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_tag_titles_icu - PASS
2026-07-19 13.22.57 - Check   - CheckFTS Blobs DB - START
2026-07-19 13.22.57 - GetSqlOutput - Prepare FAIL: table spellfix_metadata_titles has no column named spellfix_metadata_titles
2026-07-19 13.22.57 - Check   - FTS Check: spellfix_metadata_titles - PASS
2026-07-19 13.22.57 - GetSqlOutput - Prepare FAIL: table spellfix_tag_titles has no column named spellfix_tag_titles
2026-07-19 13.22.57 - Check   - FTS Check: spellfix_tag_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_metadata_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_tag_titles - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_metadata_titles_icu - PASS
2026-07-19 13.22.57 - Check   - FTS Check: fts4_tag_titles_icu - PASS
2026-07-19 13.23.11 - Repair  - START
2026-07-19 13.23.11 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library-DBREPAIR-2026-07-19_13-23-11-360.db
2026-07-19 13.23.11 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library-DBREPAIR-2026-07-19_13-23-11-360.db
2026-07-19 13.23.11 - FTSRebuild - Rebuilt fts4_metadata_titles
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_tag_titles
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_metadata_titles_icu
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_tag_titles_icu
2026-07-19 13.23.12 - Repair  - SUCCESS - Main DB Pipeline Complete
2026-07-19 13.23.12 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library.blobs-DBREPAIR-2026-07-19_13-23-11-360.db
2026-07-19 13.23.12 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/dbtmp/com.plexapp.plugins.library.blobs-DBREPAIR-2026-07-19_13-23-11-360.db
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_metadata_titles
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_tag_titles
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_metadata_titles_icu
2026-07-19 13.23.12 - FTSRebuild - Rebuilt fts4_tag_titles_icu
2026-07-19 13.23.12 - Repair  - SUCCESS - Blobs DB Pipeline Complete
2026-07-19 13.23.12 - Repair  - PUSH - Saved state to stack (Timestamp: 2026-07-19_13-23-11-360)
2026-07-19 13.23.12 - Repair  - MakeActive - Main DB updated to live (Timestamp: 2026-07-19_13-23-11-360)
2026-07-19 13.23.12 - Repair  - MakeActive - Blobs DB updated to live (Timestamp: 2026-07-19_13-23-11-360)
2026-07-19 13.23.12 - Repair  - Databases active: (Active Timestamp: 2026-07-19_13-23-11-360)
2026-07-19 13.23.24 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.23.25 - CheckDB - Checking Indexes and FTS tables - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.23.25 - CheckDB - Full check complete - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db
2026-07-19 13.23.25 - Check   - Check Main DB - PASS
2026-07-19 13.23.25 - CheckDB - Checking basic integrity - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.23.25 - CheckDB - Checking Indexes and FTS tables - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.23.25 - CheckDB - Full check complete - /Users/stephenh/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.blobs.db
2026-07-19 13.23.25 - Check   - Check Blobs DB - PASS
2026-07-19 13.23.25 - Check   - PASS
2026-07-19 13.23.25 - Check   - CheckFTS Main DB - START
2026-07-19 13.23.25 - GetSqlOutput - Prepare FAIL: table spellfix_metadata_titles has no column named spellfix_metadata_titles
2026-07-19 13.23.25 - Check   - FTS Check: spellfix_metadata_titles - PASS
2026-07-19 13.23.25 - GetSqlOutput - Prepare FAIL: table spellfix_tag_titles has no column named spellfix_tag_titles
2026-07-19 13.23.25 - Check   - FTS Check: spellfix_tag_titles - PASS
2026-07-19 13.23.25 - Check   - FTS Check: fts4_metadata_titles - PASS
2026-07-19 13.23.25 - Check   - FTS Check: fts4_tag_titles - PASS
2026-07-19 13.23.25 - Check   - FTS Check: fts4_metadata_titles_icu - PASS
2026-07-19 13.23.26 - Check   - FTS Check: fts4_tag_titles_icu - PASS
2026-07-19 13.23.26 - Check   - CheckFTS Blobs DB - START
2026-07-19 13.23.26 - GetSqlOutput - Prepare FAIL: table spellfix_metadata_titles has no column named spellfix_metadata_titles
2026-07-19 13.23.26 - Check   - FTS Check: spellfix_metadata_titles - PASS
2026-07-19 13.23.26 - GetSqlOutput - Prepare FAIL: table spellfix_tag_titles has no column named spellfix_tag_titles
2026-07-19 13.23.26 - Check   - FTS Check: spellfix_tag_titles - PASS
2026-07-19 13.23.26 - Check   - FTS Check: fts4_metadata_titles - PASS
2026-07-19 13.23.26 - Check   - FTS Check: fts4_tag_titles - PASS
2026-07-19 13.23.26 - Check   - FTS Check: fts4_metadata_titles_icu - PASS
2026-07-19 13.23.26 - Check   - FTS Check: fts4_tag_titles_icu - PASS
2026-07-19 13.23.30 - Prune   - START
2026-07-19 13.23.30 - Prune   - PASS
2026-07-19 13.23.53 - RunSysCmd executing: 'TMPDIR=/tmp osascript -e 'tell app "Plex Media Server" to launch''
2026-07-19 13.23.53 - RunSysCmd: Command exited with status 0
2026-07-19 13.23.53 - Start - PASS

Are these things it has repaired? Not sure how to interpret …

2026-07-19 13.23.26 - Check   - CheckFTS Blobs DB - START
2026-07-19 13.23.26 - GetSqlOutput - Prepare FAIL: table spellfix_metadata_titles has no column named spellfix_metadata_titles
2026-07-19 13.23.26 - Check   - FTS Check: spellfix_metadata_titles - PASS
2026-07-19 13.23.26 - GetSqlOutput - Prepare FAIL: table spellfix_tag_titles has no column named spellfix_tag_titles
2026-07-19 13.23.26 - Check   - FTS Check: spellfix_tag_titles - PASSAwaiting further guidance and explanation ...

:smiley:

You’re seeing the embedded SQL talk to the DB and report the error text sqlite3 gives me.

What it’s saying is that:

  1. It found damage in the FTS table (spellfix)
  2. It went to repair it and could not because of a missing column in the table.

Query, If you run DBRepair.sh, does it completely fix the error or is the error remain ? (DBRepair.sh does auto fix these table errors?)

(( I had trouble with the spellfix1 extension for sqlite3. It’s a little rascal to get it working right))

Here is log from a run of “stop”, “auto”, “start” from DBRepair.sh 1.16.00:

026-07-19 13.33.28 - ============================================================
2026-07-19 13.33.28 - Session start: Host is Mac
2026-07-19 13.33.32 - Stop    - PASS
2026-07-19 13.33.32 - Auto    - START
2026-07-19 13.33.32 - Check   - Check com.plexapp.plugins.library.db - FAIL (row 1132 missing from index index_title_sort_icu)
2026-07-19 13.33.32 - Check   - Check com.plexapp.plugins.library.blobs.db - PASS
2026-07-19 13.33.32 - Check   - FAIL
2026-07-19 13.33.36 - Start   - PASS
2026-07-19 13.33.36 - Exit    - Delete temp files.
2026-07-19 13.33.36 - Session end. Sun Jul 19 13:33:36 AEST 2026
2026-07-19 13.33.36 - ============================================================

Do you mind querying the DB manually and see what’s in it?

Plex SQLite is either in:

"/Applications/Plex Media Server.app/Contents/Plex SQLite"
-or-
"~/Applications/Plex Media Server.app/Contents/MacOS/Plex SQLite"

We need to invoke it with the command line argument which points to your DB

"~/Applications/Plex Media Server.app/Contents/Plex SQLite" "~/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db"

when in there, please type

.tables
.schema spellfix_tag_titles

Looks like this:

chuck@tirol ~ %  ~/Applications/Plex\ Media\ Server.app/Contents/MacOS/Plex\ SQLite ~/Library/Application\ Support/Plex\ Media\ Server/Plug-in\ Support/Databases/com.plexapp.plugins.library.db
SQLite version 3.39.4 2022-09-29 15:55:41
Enter ".help" for usage hints.
sqlite> .tables
accounts                             media_item_settings                
activities                           media_items                        
blobs                                media_part_settings                
custom_channels                      media_parts                        
devices                              media_provider_resources           
directories                          media_stream_settings              
download_queue_items                 media_streams                      
download_queues                      media_subscriptions                
external_metadata_items              metadata_agent_provider_group_items
external_metadata_sources            metadata_agent_provider_groups     
fts4_metadata_titles                 metadata_agent_providers           
fts4_metadata_titles_docsize         metadata_item_accounts             
fts4_metadata_titles_icu             metadata_item_clusterings          
fts4_metadata_titles_icu_docsize     metadata_item_clusters             
fts4_metadata_titles_icu_segdir      metadata_item_setting_markers      
fts4_metadata_titles_icu_segments    metadata_item_settings             
fts4_metadata_titles_icu_stat        metadata_item_views                
fts4_metadata_titles_segdir          metadata_items                     
fts4_metadata_titles_segments        metadata_relations                 
fts4_metadata_titles_stat            metadata_subscription_desired_items
fts4_tag_titles                      play_queue_generators              
fts4_tag_titles_docsize              play_queue_items                   
fts4_tag_titles_icu                  play_queues                        
fts4_tag_titles_icu_docsize          plugin_prefixes                    
fts4_tag_titles_icu_segdir           plugins                            
fts4_tag_titles_icu_segments         preferences                        
fts4_tag_titles_icu_stat             remote_id_translation              
fts4_tag_titles_segdir               schema_migrations                  
fts4_tag_titles_segments             section_locations                  
fts4_tag_titles_stat                 spellfix_metadata_titles           
hub_templates                        spellfix_metadata_titles_vocab     
library_section_permissions          spellfix_tag_titles                
library_sections                     spellfix_tag_titles_vocab          
locatables                           statistics_bandwidth               
location_places                      statistics_media                   
locations                            statistics_resources               
locations_node                       taggings                           
locations_parent                     tags                               
locations_rowid                      versioned_metadata_items           
media_grabs                          view_settings                      
sqlite> .schema spellfix_tag_tables
sqlite> 
sqlite> .schema spellfix_tag_titles
CREATE VIRTUAL TABLE spellfix_tag_titles USING spellfix1
/* spellfix_tag_titles(word,rank,distance,langid,score,matchlen) */;
sqlite>

Ok @ChuckPa :

stephenh@MacStudio ~ % /Applications/Plex\ Media\ Server.app/Contents/MacOS/Plex\ SQLite ~/Library/Application\ Support/Plex\ Media\ Server/Plug-in\ Support/Databases/com.plexapp.plugins.library.db 
SQLite version 3.39.4 2022-09-29 15:55:41
Enter ".help" for usage hints.
sqlite> .tables
accounts                             media_item_settings                
activities                           media_items                        
blobs                                media_part_settings                
custom_channels                      media_parts                        
devices                              media_provider_resources           
directories                          media_stream_settings              
download_queue_items                 media_streams                      
download_queues                      media_subscriptions                
external_metadata_items              metadata_agent_provider_group_items
external_metadata_sources            metadata_agent_provider_groups     
fts4_metadata_titles                 metadata_agent_providers           
fts4_metadata_titles_docsize         metadata_item_accounts             
fts4_metadata_titles_icu             metadata_item_clusterings          
fts4_metadata_titles_icu_docsize     metadata_item_clusters             
fts4_metadata_titles_icu_segdir      metadata_item_setting_markers      
fts4_metadata_titles_icu_segments    metadata_item_settings             
fts4_metadata_titles_icu_stat        metadata_item_views                
fts4_metadata_titles_segdir          metadata_items                     
fts4_metadata_titles_segments        metadata_relations                 
fts4_metadata_titles_stat            metadata_subscription_desired_items
fts4_tag_titles                      play_queue_generators              
fts4_tag_titles_docsize              play_queue_items                   
fts4_tag_titles_icu                  play_queues                        
fts4_tag_titles_icu_docsize          plugin_prefixes                    
fts4_tag_titles_icu_segdir           plugins                            
fts4_tag_titles_icu_segments         preferences                        
fts4_tag_titles_icu_stat             remote_id_translation              
fts4_tag_titles_segdir               schema_migrations                  
fts4_tag_titles_segments             section_locations                  
fts4_tag_titles_stat                 spellfix_metadata_titles           
hub_templates                        spellfix_metadata_titles_vocab     
library_section_permissions          spellfix_tag_titles                
library_sections                     spellfix_tag_titles_vocab          
locatables                           statistics_bandwidth               
location_places                      statistics_media                   
locations                            statistics_resources               
locations_node                       taggings                           
locations_parent                     tags                               
locations_rowid                      versioned_metadata_items           
media_grabs                          view_settings                      
sqlite> .schema spellfix_tag_titles
CREATE VIRTUAL TABLE spellfix_tag_titles USING spellfix1
/* spellfix_tag_titles(word,rank,distance,langid,score,matchlen) */;
sqlite> 

Now what? Run repair again from the new DBRepair?

:smiley:

@StephenH

This line in your output

GetSqlOutput - Prepare FAIL: table spellfix_metadata_titles has no column named spellfix_metadata_titles

is pointing to the sqlite3 plugin for spellfix1.

I need to figure out why it’s not working in 0.1999.02 for everything and fix it immediately.
This is exactly the type of error I should be fixing (which DBRepair,.sh didn’t even see)

Please go ahead and revert your DB to the backup you have.

If you were still in the program, you could type “History” and then “Revert” to have it do the rollback for you.

It’s midnight here. I will get on this first thing tomorrow.

Ok, would you like a copy of my database?

Can upload it to OneDrive and give you a link …

What exact file(s) do you need?

If you have the com.plexapp.plugins.library.db (plus -wal & -shm) if present,
put them in a ZIP, That would be fantastic!!!

You can PM me.

It’ll let me replicate what you’re seeing and have a positive verification test
I’ll also be able to dig a lot deeper into the DB with it in front of me.

If I may ask, how is it so far (other than not being 100% perfect) ?

Will do for the files, should be there when you wake up.

I’m on Australian Eastern Standard Time, so GMT +10, it’s 14:15 here.

Program is going great, lightning fast!