# Plex 1.43.2 Loudness Analysis Debug — Full Investigation Session: June 27, 2026. Server: Ubuntu 26.04, Plex 1.43.2.10687-563d026ea, Docker. ## Investigation Chain ### 1. Initial complaint: DJ Friendgänger greyed out User's Albanian Traditional Music library (section 4, 170 tracks) had sonic analysis enabled and completed per Plex UI, but DJ Friendgänger was greyed out. ### 2. Server-level diagnostic ```python # GET /:/prefs revealed: MusicAnalysisBehavior: scheduled # ✅ correct LoudnessAnalysisBehavior: asap # ❌ blocking loudness analysis ButlerStartHour: 18 ButlerEndHour: 20 ``` **Fix applied:** Set `LoudnessAnalysisBehavior=scheduled`. ### 3. Database check — loudness data ```sql SELECT COUNT(*) FROM media_parts mp JOIN media_items mi ON mi.id = mp.media_item_id WHERE mi.library_section_id = 4 AND mp.extra_data LIKE '%"ma:loudness"%' -- Result: 0 of 170 tracks ``` ### 4. Activity history — ZERO-WORK pattern ```sql SELECT title, subtitle, started_at, finished_at FROM activities WHERE title LIKE '%loudness%' ORDER BY started_at DESC -- Result: 5 entries, all 'Butler tasks: LoudnessAnalysis', ALL ZERO-WORK ``` ### 5. Attempted trigger: butler hours + musicAnalysis toggle Set butler to current hour. Toggled musicAnalysis off/on. Butler ran but only processed "Processing 1 albums" — the one album was from section 5 (Club Hits), not section 4. ### 6. Attempted CLI: `--analyze-loudness` ```bash docker exec plex "Plex Media Scanner" --analyze-loudness --section 4 --loudness-parallelism 8 # Result: exit 0, no output, no log file created, no loudness data docker exec plex "Plex Media Scanner" --analyze-loudness 4 --loudness-parallelism 8 # Result: exit 0, no output, no log file created, no loudness data docker exec plex "Plex Media Scanner" --analyze-loudness --item 18017 # Result: exit 0, no output, no loudness data ``` ### 7. Attempted CLI: `--analyze-deeply` ```bash docker exec plex "Plex Media Scanner" --analyze-deeply --section 4 # Result: exit 0, no output, no log docker exec plex "Plex Media Scanner" --analyze-deeply 4 # Result: exit 0, no output, no log ``` ### 8. Attempted: HTTP API ```python PUT /library/sections/4/analyze # 200, no effect PUT /library/metadata/{id}/analyze # 200 per item, no effect ``` ### 9. Persistence check — found indexes ARE present ```bash ls "Databases/Music Analysis 4/" # Album.tree (121K), Artist.tree (82K), Mapping.db (44K), Track.tree (130K) ``` This proved sonic fingerprinting had completed successfully. The "persistence bug" in earlier docs was wrong — indexes ARE persisted, just in binary tree files, not as `sa:` keys. ### 10. Found gate: `pv:deepAnalysisDate` All 170 tracks in section 4 had `pv:deepAnalysisDate: 1781974855` (June 20, 2026) in `media_parts.extra_data`. This timestamp tells Plex "already analyzed." ### 11. Cleared `pv:deepAnalysisDate` from all 170 tracks ```python # Removed pv:deepAnalysisDate from extra_data via regex replacement # 170 tracks updated ``` ### 12. Restart + butler trigger ```bash docker compose restart plex # Set butler hours to current # Toggled musicAnalysis off → on for section 4 ``` ### 13. Butler picked up items `/activities` showed: "Sonic Analysis: Processing 5 albums" at 0% `ps aux` showed: `Plex Media Scanner --analyze-deeply --item 25040` ### 14. Scanner confirmed running on section 4 item Item 25040: "Po e mirë oj nane / Nisja tash me def / Hajde me shuplakë - Live" (section 4) Deep Analysis log showed: "Read 10000 packets at 261.198367", "Read 20000 packets at 522.422857" ### 15. But NO loudness data produced After scanner completed: - `pv:deepAnalysisDate` updated to new timestamp (1782165677) - `ma:loudness`, `ma:gain`, `ma:peak`, `ma:lra` still MISSING - Loudness count: 0/170 ## Root Cause Confirmed On Plex 1.43.2: - `--analyze-deeply` runs, reads files, updates `deepAnalysisDate` — but does NOT compute EBU R128 loudness - `--analyze-loudness` is completely non-functional (exit 0, zero effect) - The butler only triggers `--analyze-deeply`, never `--analyze-loudness` - There is no mechanism to trigger loudness analysis on 1.43.2 ## Key Database State Signals | Condition | SQL Check | Meaning | |-----------|-----------|---------| | Loudness missing | `extra_data NOT LIKE '%ma:loudness%'` | Phase 1 never ran | | `deepAnalysisDate` present | `extra_data LIKE '%pv:deepAnalysisDate%'` | Butler skips this item | | Sonic indexes exist | Check `Music Analysis {sid}/` dir | Phase 2 completed | | ZERO-WORK activities | `started_at = finished_at` | Butler tried but found nothing to do | ## Summary DJ Friendgänger can never work on Plex 1.43.2 because loudness analysis (EBU R128) cannot be triggered through any mechanism. The only fix is downgrading Plex.