2026-07-15, 11:24 PM
12.0 RC2 test report — clean migration, tasks + transcoding working (LXC, real library)
**Disclaimer up front:** the technical work here (upgrade, clone setup, log analysis) was done by Claude Code (Anthropic's AI coding agent) driving my homelab, with me testing playback and the UI. I'm a ham radio operator and PC repair tech, not a developer — I can answer questions about my setup and re-run tests, but deep code-level follow-ups may be beyond me. (Claude put me in my place!)
## Setup
- **Host:** Proxmox VE 8.4.19, Intel Xeon E5-2620 v3 (no GPU/QSV — software transcode only)
- **Container:** LXC (tteck helper-script origin), Ubuntu 22.04, 12 cores / 8 GB RAM allocated
- **Test method:** production server upgraded 10.10.7 → 10.11.11 first, then backed up via Proxmox Backup Server and restored to a **separate clone container** for RC testing — production never touched the RC. Media bind-mounted **read-only** into the clone.
- **Install:**
- **Library:** movies + TV + music on SMB 3.1.1 (CIFS) shares from a Windows machine — one share on its internal drive, one on a USB-attached drive — mounted on the Proxmox host and bind-mounted read-only into the container. library.db era database migrated from 10.11.11 (~32,000 People entries / ~114,000 mappings for scale).
## What worked
- **The irreversible 12.0 DB migration completed in 56 seconds** with zero errors (
- **Scheduled tasks are firing** — activity log shows the plugin-update task ran on schedule. (Mentioning because earlier posts in this thread reported tasks not running — not reproducing here so far.)
- **Playback, seeking, and software transcoding all work** (client: Chrome, Jellyfin Web 12.0.0). Forced a low-bitrate transcode (quality slider): ffmpeg8 spawned cleanly, seek killed and respawned the encoder properly (exit code 0), stream played fine at ~420 kbps.
- **Full-movie endurance test passed:** after the transcode test, switched to max quality — server correctly dropped to **direct play** (transcoder shut down clean, no new ffmpeg) — and watched the remaining ~2 hours over the SMB-backed library without a hiccup. Clean stop event, watch position recorded correctly.
## Observations / possible issues
1. **Transcode codec choice:** the Chrome transcode used **libx265/HEVC (
2. **WebSocket auth noise:** repeated
3. **Migration warning (completed fine, logging for the record):** during the 12.0 migration:
4. Benign/known:
Happy to pull specific logs or re-run the migration from backup if any of this is useful — re-cloning from PBS takes about two minutes.
**Disclaimer up front:** the technical work here (upgrade, clone setup, log analysis) was done by Claude Code (Anthropic's AI coding agent) driving my homelab, with me testing playback and the UI. I'm a ham radio operator and PC repair tech, not a developer — I can answer questions about my setup and re-run tests, but deep code-level follow-ups may be beyond me. (Claude put me in my place!)
## Setup
- **Host:** Proxmox VE 8.4.19, Intel Xeon E5-2620 v3 (no GPU/QSV — software transcode only)
- **Container:** LXC (tteck helper-script origin), Ubuntu 22.04, 12 cores / 8 GB RAM allocated
- **Test method:** production server upgraded 10.10.7 → 10.11.11 first, then backed up via Proxmox Backup Server and restored to a **separate clone container** for RC testing — production never touched the RC. Media bind-mounted **read-only** into the clone.
- **Install:**
unstable apt component from repo.jellyfin.org, pinned to build 2026062906+ubu2204 (the RC2-tag build), which also pulled jellyfin-ffmpeg8 (8.1.2-1). All plugins moved aside before upgrading, per the release notes.- **Library:** movies + TV + music on SMB 3.1.1 (CIFS) shares from a Windows machine — one share on its internal drive, one on a USB-attached drive — mounted on the Proxmox host and bind-mounted read-only into the container. library.db era database migrated from 10.11.11 (~32,000 People entries / ~114,000 mappings for scale).
## What worked
- **The irreversible 12.0 DB migration completed in 56 seconds** with zero errors (
Startup complete 0:00:55.88). The 10.11.11 → 12.0 path was much faster than our 10.10.7 → 10.11.11 migration (~2 min) on the same library. Server made its own jellyfin.db backup before touching it.- **Scheduled tasks are firing** — activity log shows the plugin-update task ran on schedule. (Mentioning because earlier posts in this thread reported tasks not running — not reproducing here so far.)
- **Playback, seeking, and software transcoding all work** (client: Chrome, Jellyfin Web 12.0.0). Forced a low-bitrate transcode (quality slider): ffmpeg8 spawned cleanly, seek killed and respawned the encoder properly (exit code 0), stream played fine at ~420 kbps.
- **Full-movie endurance test passed:** after the transcode test, switched to max quality — server correctly dropped to **direct play** (transcoder shut down clean, no new ffmpeg) — and watched the remaining ~2 hours over the SMB-backed library without a hiccup. Clean stop event, watch position recorded correctly.
## Observations / possible issues
1. **Transcode codec choice:** the Chrome transcode used **libx265/HEVC (
-codec:v:0 libx265 -tag:v:0 hvc1 -preset veryfast -crf 28)** where 10.11 would have picked libx264 for the same client. Is defaulting to software HEVC intentional in 12.0? On CPUs without hardware encode this is a much heavier encode per frame — fine at low bitrate on our 2014-era Xeon, but I'd expect multi-stream or higher-res software transcodes to hit walls that 10.11 didn't.2. **WebSocket auth noise:** repeated
[ERR] Error processing request: Token is required. URL GET /socket bursts (6 in ~13 s) while browsing the web UI. UI stayed responsive for us, but this may be related to the dashboard-unresponsiveness reports earlier in the thread.3. **Migration warning (completed fine, logging for the record):** during the 12.0 migration:
[WRN] An operation of type 'UpdateDataOperation' will be attempted while a rebuild of table 'BaseItems' is pending. The database may not be in an expected state. (also one SqlOperation variant). No visible damage — library, users, watch state all intact — but flagging in case it correlates with anyone's corrupted migration.4. Benign/known:
WebRootPath was not found: /var/lib/jellyfin/wwwroot warning still present.Happy to pull specific logs or re-run the migration from backup if any of this is useful — re-cloning from PBS takes about two minutes.


