# FAQ Deep-linkable answers for Task Manager and Command Center features, plus update, security, and troubleshooting guidance that matches the in-app flow. ## Catalog Pick a feature area first, then jump into the full section below. > ### [Getting started](#getting-started) > > Basics, first-run setup, and how to reach the app. > [What is Immaculaterr?](#what-is-immaculaterr) · [What are the three main pages I need to understand?](#what-are-the-three-main-pages-i-need-to-understand) · [How do I do first-time setup?](#how-do-i-do-first-time-setup) > > - 1 more answer in the section below. > ### [Task Manager](#task-manager) > > How jobs run, what the main controls mean, and how to keep automation simple. > [What is Task Manager for?](#what-is-task-manager-for) · [How do I keep Task Manager simple by default?](#how-do-i-keep-task-manager-simple-by-default) · [What is the difference between manual runs, Plex-Triggered Auto-Run, and Scheduled Auto-Run?](#what-is-the-difference-between-manual-runs-plex-triggered-auto-run-and-scheduled-auto-run) > > - 4 more answers in the section below. > ### [Confirm Monitored](#confirm-monitored) > > Keep ARR monitoring aligned with what already exists in Plex. > [What does Confirm Monitored do?](#what-does-confirm-monitored-do) · [When should I use Confirm Monitored?](#when-should-i-use-confirm-monitored) · [Does Confirm Monitored have any special settings?](#does-confirm-monitored-have-any-special-settings) > ### [Confirm Unmonitored](#confirm-unmonitored) > > Choose Radarr or Sonarr, then re-monitor missing unmonitored movies or episodes that Plex does not have. > [What does Confirm Unmonitored do?](#what-does-confirm-unmonitored-do) · [When should I use Confirm Unmonitored?](#when-should-i-use-confirm-unmonitored) · [Does Confirm Unmonitored have any special settings?](#does-confirm-unmonitored-have-any-special-settings) > ### [Cleanup After Adding New Content](#cleanup-after-adding-new-content) > > Plex-triggered cleanup actions for newly added media. > [What does Cleanup After Adding New Content do?](#what-does-cleanup-after-adding-new-content-do) · [What do the cleanup toggles mean?](#what-do-the-cleanup-toggles-mean) · [What is the difference between Plex-Triggered Auto-Run and Run now for this card?](#what-is-the-difference-between-plex-triggered-auto-run-and-run-now-for-this-card) > > - 1 more answer in the section below. > ### [Search Monitored](#search-monitored) > > Off-peak missing searches for monitored ARR items. > [What does Search Monitored do?](#what-does-search-monitored-do) · [What does the Includes section do?](#what-does-the-includes-section-do) · [When should I use Search Monitored instead of Start search immediately?](#when-should-i-use-search-monitored-instead-of-start-search-immediately) > ### [TMDB Upcoming Movies](#tmdb-upcoming-movies) > > What this task does, how each run works, and how to edit filters. > [How does TMDB Upcoming Movies work?](#how-does-tmdb-upcoming-movies-work) · [What are the defaults if I do not create custom filters?](#what-are-the-defaults-if-i-do-not-create-custom-filters) · [How do I set custom filters on this card?](#how-do-i-set-custom-filters-on-this-card) > > - 1 more answer in the section below. > ### [Rotten Tomatoes Upcoming Movies](#rotten-tomatoes-upcoming-movies) > > Fixed-source Rotten Tomatoes movies + TV discovery with saved branch toggles, per-branch Top counts, and shared Seerr routing. > [How does Rotten Tomatoes Upcoming Movies work?](#how-does-rotten-tomatoes-upcoming-movies-work) · [What sources does it check?](#what-sources-does-it-check) · [What does the Route via Seerr toggle do?](#what-does-the-route-via-seerr-toggle-do) · [What results should I expect after a run?](#what-results-should-i-expect-after-a-run) > ### [Immaculate Taste Collection](#immaculate-taste-collection) > > Watch-triggered Immaculate Taste updates and missing-item routing. > [What does Immaculate Taste Collection do?](#what-does-immaculate-taste-collection-do) · [What does the Immaculate Taste Refresher toggle do?](#what-does-the-immaculate-taste-refresher-toggle-do) · [What does Fetch Missing items do on this card?](#what-does-fetch-missing-items-do-on-this-card) > > - 4 more answers in the section below. > ### [Immaculate Taste Refresher](#immaculate-taste-refresher) > > Standalone off-peak rebuilds for the Immaculate Taste collection. > [What does Immaculate Taste Refresher do?](#what-does-immaculate-taste-refresher-do) · [When should I use the separate refresher card if the collection card already has a refresher toggle?](#when-should-i-use-the-separate-refresher-card-if-the-collection-card-already-has-a-refresher-toggle) · [What is a good default setup for Immaculate Taste Refresher?](#what-is-a-good-default-setup-for-immaculate-taste-refresher) > ### [Based on Latest Watched Collection](#based-on-latest-watched-collection) > > Watch-triggered recommendation generation from your latest watch. > [What does Based on Latest Watched Collection do?](#what-does-based-on-latest-watched-collection-do) · [What does Fetch Missing items do on this card?](#what-does-fetch-missing-items-do-on-this-card-1) · [What does Approval required from Observatory do here?](#what-does-approval-required-from-observatory-do-here) > > - 2 more answers in the section below. > ### [Based on Latest Watched Refresher](#based-on-latest-watched-refresher) > > Off-peak refreshes for latest-watched recommendation rows. > [What does Based on Latest Watched Refresher do?](#what-does-based-on-latest-watched-refresher-do) · [When should I use this refresher instead of the collection card?](#when-should-i-use-this-refresher-instead-of-the-collection-card) · [What is a good default setup for Based on Latest Watched Refresher?](#what-is-a-good-default-setup-for-based-on-latest-watched-refresher) > ### [Fresh Out Of The Oven](#fresh-out-of-the-oven) > > Per-user unseen recent-release movie rows for the last 3 months. > [What does Fresh Out Of The Oven do?](#what-does-fresh-out-of-the-oven-do) · [Where does Fresh Out Of The Oven pin in Plex?](#where-does-fresh-out-of-the-oven-pin-in-plex) · [What is a good default setup for Fresh Out Of The Oven?](#what-is-a-good-default-setup-for-fresh-out-of-the-oven) > ### [Plex Watch History Import](#plex-watch-history-import) > > Scan your Plex watched history to seed recommendations and build dedicated collections. > [What does Plex Watch History Import do?](#what-does-plex-watch-history-import-do) · [What Plex collections does the import affect?](#what-plex-collections-does-the-plex-history-import-affect) · [How do I see which titles were used as seeds?](#how-do-i-see-which-titles-were-used-as-seeds) > > - 4 more answers in the section below. > ### [Netflix Watch History Import](#netflix-watch-history-import) > > Upload a Netflix CSV to seed recommendations from your external watch history. > [What does Netflix Watch History Import do?](#what-does-netflix-watch-history-import-do) · [Where do I get the Netflix CSV file?](#where-do-i-get-the-netflix-csv-file) · [What Plex collections does the import affect?](#what-plex-collections-does-the-import-affect) > > - 4 more answers in the section below. > ### [Recommendations](#recommendations) > > Seeds, generated lists, and how recommendation rows refresh over time. > [What does Recommendations control?](#what-does-recommendations-control) · [What does "Plex-Triggered Auto-Run" mean?](#what-does-plex-triggered-auto-run-mean) · [How can I run a job manually?](#how-can-i-run-a-job-manually) > > - 8 more answers in the section below. > ### [Plex Library Selection](#plex-library-selection) > > Which Plex libraries can participate in manual and automatic runs. > [How does Plex Library Selection affect auto-runs and manual runs?](#how-does-plex-library-selection-affect-auto-runs-and-manual-runs) > ### [Plex User Monitoring](#plex-user-monitoring) > > How viewer-specific datasets, monitoring, and row pinning work. > [What does Plex User Monitoring do?](#what-does-plex-user-monitoring-do) · [How do per-viewer collections and Plex pin locations work?](#how-do-per-viewer-collections-and-plex-pin-locations-work) > ### [Immaculate Taste Profiles](#immaculate-taste-profiles) > > Advanced taste lanes, Observatory behavior, and profile matching rules. > [What's the difference between "Immaculate Taste" and "Based on Latest Watched"?](#whats-the-difference-between-immaculate-taste-and-based-on-latest-watched) · [How does the Immaculate Taste collection work?](#how-does-the-immaculate-taste-collection-work) · [What are Immaculate Taste profiles and smart filters, and when should I use them?](#what-are-immaculate-taste-profiles-and-smart-filters-and-when-should-i-use-them) > > - 6 more answers in the section below. > ### [Reset Immaculate Taste Collection](#reset-immaculate-taste-collection) > > Reset the saved Immaculate Taste dataset for a selected library. > [What does "Reset Immaculate Taste Collection" do?](#what-does-reset-immaculate-taste-collection-do) > ### [Reset Seerr Requests](#reset-seerr-requests) > > Seerr routing behavior and how to clear managed request history. > [How do I set up Seerr mode in simple steps?](#how-do-i-set-up-seerr-mode-in-simple-steps) · [What changes when I turn on "Route missing items via Seerr"?](#what-changes-when-i-turn-on-route-missing-items-via-seerr) · [What is the difference between in-app approval mode and Seerr mode?](#what-is-the-difference-between-in-app-approval-mode-and-seerr-mode) > > - 1 more answer in the section below. > ### [Reset Rejected List](#reset-rejected-list) > > Swipe actions, rejected suggestions, and how to make them eligible again. > [What do swipes do, and when should I reset the rejected list?](#what-do-swipes-do-and-when-should-i-reset-the-rejected-list) > ### [Collection Posters](#collection-posters) > > Custom artwork for managed collections and poster override behavior. > [How does poster artwork work for collections? Can I customize posters?](#how-does-poster-artwork-work-for-collections-can-i-customize-posters) > ### [Radarr](#radarr) > > Movie request routing, cleanup behavior, and direct ARR expectations. > [What does "Fetch Missing items" actually do?](#what-does-fetch-missing-items-actually-do) · [If I disable Radarr toggles, what changes?](#if-i-disable-radarr-toggles-what-changes) · [What happens during "Cleanup after adding new content"?](#what-happens-during-cleanup-after-adding-new-content) > > - 1 more answer in the section below. > ### [Sonarr](#sonarr) > > TV request routing, duplicate handling, and what toggles actually change. > [How are TV duplicates handled in Sonarr?](#how-are-tv-duplicates-handled-in-sonarr) · [What changes if I disable Sonarr toggles?](#what-changes-if-i-disable-sonarr-toggles) > ### [Updates & versions](#updates--versions) > > Release checks, version visibility, and the safest update flow. > [How does the app check for updates?](#how-does-the-app-check-for-updates) · [Why does it say "Update available"? What should I do?](#why-does-it-say-update-available-what-should-i-do) · [Where can I see the current version and version history?](#where-can-i-see-the-current-version-and-version-history) > > - 1 more answer in the section below. > ### [Security & backups](#security--backups) > > Master key handling, backups, and the app's built-in security controls. > [What is APP_MASTER_KEY and why is it required?](#what-is-app_master_key-and-why-is-it-required) · [Where should I store the master key (env var vs secret file)?](#where-should-i-store-the-master-key-env-var-vs-secret-file) · [What happens if I lose the master key?](#what-happens-if-i-lose-the-master-key) > > - 3 more answers in the section below. > ### [Troubleshooting](#troubleshooting) > > Common login, integration, empty-run, and reset questions. > [I can't log in / I keep getting logged out - what do I check?](#i-cant-log-in--i-keep-getting-logged-out---what-do-i-check) · [Immaculaterr can't reach Plex/Radarr/Sonarr/Seerr - what URL should I use from Docker?](#immaculaterr-cant-reach-plexradarrsonarrseerr---what-url-should-i-use-from-docker) · [TMDB requests fail - what's required and where do I configure it?](#tmdb-requests-fail---whats-required-and-where-do-i-configure-it) > > - 5 more answers in the section below. > ### [Glossary](#glossary) > > Shared terms used throughout the app and job reports. > [Auto-Run](#auto-run) · [Plex-Triggered](#plex-triggered) · [Scheduled](#scheduled) > > - 4 more answers in the section below. ## Getting started ### What is Immaculaterr? Immaculaterr is a Plex autopilot that watches your Plex activity, generates curated recommendation collections, and runs a few safety-focused cleanup jobs so your library stays tidy. It does not download media by itself. It can optionally send missing titles to Radarr/Sonarr or Seerr, which handle the request/download workflows. ### What are the three main pages I need to understand? - Vault: connect services (Plex, Radarr/Sonarr/Seerr, TMDB, optional Google/OpenAI). - Command Center: tune how the app behaves (defaults and dials). - Task Manager: run jobs manually, and enable/disable Auto-Run. ### How do I do first-time setup? 1. Create your admin login when prompted. 2. During initial setup, you already added Plex and TMDB API keys; those are enough to create Plex collections. 3. Optionally configure Radarr/Sonarr and/or Seerr in Vault if you want missing-item requests. 4. In Task Manager, choose your missing-item route per task card: direct ARR or Seerr. 5. Go to Task Manager and enable Auto-Run for the jobs you want. ### What port does Immaculaterr use and how do I access it? If you use the built-in local HTTPS helper, both are available: - HTTP: `http://:5454/` - HTTPS (local/LAN): `https://:5464/` For local HTTPS update/setup steps, use [Setup - Optional HTTPS sidecar](/setup#update-paths-https-sidecar). For TrueNAS SCALE GUI installs, use [Setup: TrueNAS](/setup/truenas), which includes: - Option 1 (recommended): HTTPS sidecar + encrypted secret transport. - Option 2 (compatibility): HTTP-only with `SECRETS_TRANSPORT_ALLOW_PLAINTEXT=true` (plaintext credential transport). ## Task Manager Open in app: [Task Manager](/task-manager) ### What is Task Manager for? Task Manager is the page where you decide when each job runs and whether it should run automatically. - Each card is a separate job. - **Run now** starts that job manually. - **Auto-Run** lets that card run on a Plex trigger or on a schedule, depending on the job. ### How do I keep Task Manager simple by default? - Leave most cards off until you know you want that automation. - For scheduled cards, the built-in default times are already set to off-peak hours. - For collection cards, direct **Radarr** / **Sonarr** fetch is the simplest path if you want missing-item requests. - Only turn on **Route missing items via Seerr** if you want Seerr to become the request workflow instead. - Leave **Approval required from Observatory** off unless you want to review each missing title first. - Leave **Start search immediately** off unless you truly want instant ARR searching. Use **Search Monitored** for off-peak searching instead. ### What is the difference between manual runs, Plex-Triggered Auto-Run, and Scheduled Auto-Run? - **Run now**: starts a job right away when you press the button. - **Plex-Triggered Auto-Run**: waits for Plex activity such as a completed watch or newly added media. - **Scheduled Auto-Run**: runs by the clock at the time and cadence you set. In simple terms: manual runs are for testing or catch-up, Plex-triggered jobs react to activity, and scheduled jobs handle off-peak maintenance. ### What do the schedule controls mean? Scheduled cards all use the same basic controls: - **Repeat**: choose **Daily**, **Weekly**, or **Monthly**. - Weekly lets you choose one or more weekdays. - Monthly lets you choose dates **1-28** so shorter months do not break the schedule. - **Time**: the time of day for the run. - **Next Run**: shows the next scheduled run and can expand to preview the next few runs. ### Why do some Run now buttons ask for media type, title, and year? Only the collection-style cards need a seed when you run them manually. The dialog is letting you simulate the same kind of input the job would normally get from Plex. Enter the media type, the title, and optionally the year. The run then behaves like a manual watch-triggered request instead of a simple maintenance sweep. ### Why is a task card blocked or sending me to Vault? Some jobs depend on Radarr, Sonarr, or Seerr being configured and reachable. - **Confirm Monitored** and **Search Monitored** can block the whole card if ARR is not ready. - Other cards usually stay usable, but trying to enable a missing integration toggle opens a setup shortcut to Vault. ### Why don't tasks run at the same time? Tasks are intentionally serialized — only one task runs at a time. This prevents multiple jobs from hitting Plex and other external services simultaneously, which can cause errors or rate-limiting. Manual runs, schedules, Plex-triggered jobs, and Plex polling all feed into the same persisted FIFO queue. After a task finishes, there is a **1-minute cooldown** before the next queued task starts. This gives Plex and upstream services a short recovery window between runs. If a task is requested while another is already running or the cooldown is active, it is automatically queued as **Pending**. Pending tasks auto-start in order once the cooldown expires — no manual action is needed. Rewind now shows the live queue state, including queued time, ETA, blocked reason, delayed-run hints, and whether a hidden/internal task is currently ahead of you in line. If the app restarts, pending work stays queued and previously running work is marked failed so the queue can recover cleanly instead of getting stuck. ## Confirm Monitored Open in app: [Task Manager -> Confirm Monitored](/task-manager#job-monitorConfirm) ### What does Confirm Monitored do? It keeps ARR monitoring aligned with verified playable media already in Plex. In simple English: this task only counts a movie or episode as present after Plex can actually serve a playable media part for it, not just because metadata exists. For Radarr movies, it only unmonitors titles that Plex can play and that Radarr already marks as having a file. On the Sonarr side, the cascade still happens, but in order: it checks episodes across all monitored shows first, then seasons, then series. If every regular episode in a season ends unmonitored, the season is unmonitored too. If every tracked season ends unmonitored, the series itself is unmonitored too. ### When should I use Confirm Monitored? Use it as routine maintenance or after large imports, library moves, or cleanup work. If you want it running in the background, just enable its schedule and keep it on an off-peak time. ### Does Confirm Monitored have any special settings? No. This card is intentionally simple: schedule it if you want automation, or use **Run now** when you want an immediate pass. It still needs Radarr or Sonarr to be available. ## Confirm Unmonitored Open in app: [Task Manager -> Confirm Unmonitored](/task-manager#job-unmonitorConfirm) ### What does Confirm Unmonitored do? **Run now** now asks whether you want the Radarr or Sonarr branch. The **Radarr** branch keeps the existing movie behavior: it checks Radarr movies that are already marked unmonitored and verifies they really exist in Plex. The **Sonarr** branch checks monitored series and re-monitors only the currently unmonitored non-special episodes that Plex is still missing. ### When should I use Confirm Unmonitored? Use the Radarr branch after library rebuilds, large cleanups, storage moves, or anytime you suspect movie monitoring drifted out of sync with Plex. Use the Sonarr branch after show imports, metadata repairs, or TV library churn when you want a deliberate pass that restores monitoring only for the episodes Plex does not actually have. ### Does Confirm Unmonitored have any special settings? This card is still intentionally manual-only, but **Run now** now opens a small chooser for **Radarr** or **Sonarr**. Pick Radarr for movie libraries or Sonarr for monitored-series episode cleanup. If the service you choose is disabled, incomplete, or unreachable, Immaculaterr sends you to the matching Vault setup card instead of queueing the run. ## Cleanup After Adding New Content Open in app: [Task Manager -> Cleanup After Adding New Content](/task-manager#job-mediaAddedCleanup) ### What does Cleanup After Adding New Content do? This is the post-download cleanup card. It reacts to newly added Plex media and can run cleanup actions such as duplicate cleanup, ARR unmonitoring, and watchlist cleanup. ### What do the cleanup toggles mean? - **Delete duplicate media**: remove lower-quality duplicate files/versions via the Plex API, keeping the best copy. When off, no Plex media files are deleted. - **Unmonitor recently downloaded media**: stop ARR from continuing to monitor items that just landed. - **Remove recently added media from watchlist**: clear those newly satisfied items out of the watchlist flow. ### What is the difference between Plex-Triggered Auto-Run and Run now for this card? **Plex-Triggered Auto-Run** reacts to new-media events from Plex. **Run now** is the broad catch-up option. It performs a full cleanup sweep across all libraries instead of waiting for a new-media event. ### What happens if I turn every cleanup toggle off? The card can still run, but it behaves like a no-op. That is useful if you want to keep the card visible without having it perform cleanup actions. ## Search Monitored Open in app: [Task Manager -> Search Monitored](/task-manager#job-arrMonitoredSearch) ### What does Search Monitored do? It is the off-peak missing-search card for monitored ARR items. This is the scheduled place to let Radarr and Sonarr search for missing content instead of firing searches immediately. ### What does the Includes section do? **Includes** lets you choose whether the scheduled run should target **Radarr**, **Sonarr**, or both. If both are enabled on a scheduled run, Sonarr starts about one hour after the scheduled time. Manual runs do not delay Sonarr. If an ARR service is not fully configured, turning that toggle on sends you to the matching Vault setup shortcut. ### When should I use Search Monitored instead of Start search immediately? Use **Search Monitored** when you want missing searches to happen on a calmer schedule. Use **Start search immediately** only if you want ARR searching to begin as soon as a collection job adds missing titles. ## TMDB Upcoming Movies Open in app: [Task Manager -> TMDB Upcoming Movies](/task-manager#job-tmdbUpcomingMovies) ### How does TMDB Upcoming Movies work? This task finds upcoming movies from TMDB and routes selected titles to Radarr or Seerr. Run flow: 1. Every enabled filter set runs a TMDB discover query inside the configured date window. 2. Results are merged, deduplicated by TMDB id, and ranked by popularity. 3. The final list is capped by your global limit and then sent to your selected route. ### What are the defaults if I do not create custom filters? - A hidden baseline filter is used (no genre, language, certification, or watch-provider restrictions). - Score min defaults to **6** and score max is fixed at **10**. - Window defaults to **today through +2 months**. - Global limit defaults to **100** (you can raise it up to **1000**). - Route defaults to **Radarr** unless you turn on Seerr routing. ### How do I set custom filters on this card? Open the card, go to **Filter sets**, press **Add filter**, then edit that filter. - Name and enable/disable each filter set independently. - **Add filter** scrolls to the new card and focuses the name field automatically. - Only one new pending filter can exist at a time until you click out of that new name field. - **Genres** are OR (match any selected genre). - **Languages** allow one value per filter (deselect first to switch). - **Score min** is editable; score max stays fixed at 10. - **Certifications (US)** are optional. - **Where to watch** is currently ignored by TMDB Upcoming discovery. ### What results should I expect after a run? Each enabled filter gets part of the global limit. All candidates are then merged, deduplicated, ranked, and routed. - If a destination reports "already exists," the job can backfill with reserves. - If all custom filters are disabled, the hidden baseline runs instead. - Rewind shows per-filter discovered/selected counts and destination outcomes. - Rewind keeps the run title as **TMDB Upcoming Movies** for this job. ## Rotten Tomatoes Upcoming Movies Open in app: [Task Manager -> Rotten Tomatoes Upcoming Movies](/task-manager#job-rottenTomatoesUpcomingMovies) ### How does Rotten Tomatoes Upcoming Movies work? This task can run movie discovery, TV discovery, or both. Saved scheduled and auto-runs use the card toggles, and when both branches are enabled they always run movies first, then TV shows. Run flow: 1. Movie pages still use the existing safe Radarr lookup flow before titles are added to Radarr or requested in Seerr, and movie discovery stops once the saved Movie Top count is reached. The default is Top 20. 2. TV pages are scraped from fixed Rotten Tomatoes browse URLs, filtered to shows with both critic and audience scores of at least 60, then deduplicated. 3. TV discovery stops once the saved TV Top count is reached. The default is Top 10. 4. Manual Run now uses the saved card settings for Movies, TV Shows, Route via Seerr, and both Top counts. If Movies and TV Shows are both off, Run Now is blocked until at least one branch is enabled. ### What sources does it check? - One Rotten Tomatoes in-theaters newest page. - Eleven Rotten Tomatoes at-home newest pages for Fandango at Home, Apple TV+, Netflix, Prime Video, Disney+, Max, Peacock, Hulu, Paramount+, AMC+, and Acorn TV. - TV discovery uses fixed Rotten Tomatoes TV browse pages for newest releases plus the built-in streaming-provider pages. - TV only reads the first HTML page for each source. It does not use Load more or cursor pagination. - These URLs are fixed in code for this task, so there is no custom source editor on the card. - If one source page fails, the run keeps going and reports that source as skipped. ### What does the Route via Seerr toggle do? - When the toggle is off, matched movies are added directly to Radarr and new TV shows are added directly to Sonarr with the app's saved defaults. - When the toggle is on, both movies and TV shows are sent to Seerr instead of being added directly to Radarr or Sonarr. - Movie requests still depend on conservative Radarr lookup first, so Seerr requests only happen for safe movie title and year matches. - In Seerr mode there is no direct ARR add fallback for new items. If Seerr is missing, discovery still completes and the destination step is skipped. - Existing Sonarr shows can still be reconciled against Plex when Sonarr already has the series, even if new TV requests are being routed through Seerr. ### What results should I expect after a run? - The saved Movie Top count defaults to 20 and the saved TV Top count defaults to 10. On a new setup, Movies and TV Shows both start off until you enable at least one branch. - Manual Run does not ask for one-run overrides. It immediately uses the saved card toggles, Route via Seerr setting, and the saved Movie and TV Top counts. - Movies or shows that already exist in Radarr, Sonarr, or Seerr are counted as existing instead of surfacing as hard failures. - Existing Sonarr shows can have episode, season, and series monitoring updated so Plex copies stay unmonitored while missing episodes stay monitored. - Rewind now shows separate movie and TV steps plus TV-specific stats for source pages, score filtering, unresolved IDs, requests or adds, skips, and reconciliation counts. - If both Movies and TV Shows are turned off on the card, Run Now is blocked and scheduled and auto-runs do nothing until at least one branch is enabled again. ## Immaculate Taste Collection Open in app: [Task Manager -> Immaculate Taste Collection](/task-manager#job-immaculateTastePoints) ### What does Immaculate Taste Collection do? This is the watch-triggered Immaculate Taste updater. After you finish watching, it updates the taste dataset, refreshes the recommendation pool, and can optionally route missing titles to Radarr, Sonarr, or Seerr. It is the main card for growing and updating the Immaculate Taste pipeline. ### What does the Immaculate Taste Refresher toggle do? It chains the follow-up refresher after this watch-triggered update so the saved dataset can rebuild the **Inspired by your Immaculate Taste** collection. If you turn this off, you can still run or schedule the separate **Immaculate Taste Refresher** card on its own. ### What does Fetch Missing items do on this card? It allows missing Immaculate Taste suggestions to leave Immaculaterr. In direct ARR mode, movies can go to Radarr and shows can go to Sonarr. If you leave these toggles off, the card still creates suggestions and tracking data, but it does not send missing items out for requests. ### When should I use Start search immediately? Turn it on only if you want Radarr or Sonarr to start searching as soon as this card adds missing titles. If you prefer calmer, off-peak searching, leave it off and use **Search Monitored** instead. The UI even offers that option when you enable this toggle. ### What does Approval required from Observatory do? It adds a review step before direct ARR requests are sent. Missing titles stay pending until you swipe right on them in Observatory. This only applies to direct ARR mode. If you switch the task to Seerr routing, approval mode turns off for this card. ### What changes when I turn on Route missing items via Seerr? - New missing items are requested in Seerr instead of being sent directly to ARR. - Direct Radarr and Sonarr fetch toggles are turned off for this card. - **Start search immediately** is turned off. - **Approval required from Observatory** is turned off. ### Why does Run now ask for media type, title, and year on this card? Manual runs on this card simulate a watch-triggered seed. You choose the media type, enter the title, and optionally provide the year so Immaculaterr knows what you want it to build from. Expect a real collection-style run, not just a quick health check. ## Immaculate Taste Refresher Open in app: [Task Manager -> Immaculate Taste Refresher](/task-manager#job-immaculateTasteRefresher) ### What does Immaculate Taste Refresher do? It is the off-peak rebuild card for the Immaculate Taste collection. It revisits the saved dataset across eligible libraries, promotes items that are now available in Plex, and refreshes the managed collection. ### When should I use the separate refresher card if the collection card already has a refresher toggle? Use the separate card when you want a standalone scheduled rebuild, even when no recent watch event happened. The toggle on the collection card is only for chaining a refresher right after that card runs. ### What is a good default setup for Immaculate Taste Refresher? If you want background upkeep, enable the schedule and keep it on an off-peak time. If you prefer more control, leave it off and use **Run now** only when you want a manual rebuild. ## Based on Latest Watched Collection Open in app: [Task Manager -> Based on Latest Watched Collection](/task-manager#job-watchedMovieRecommendations) ### What does Based on Latest Watched Collection do? This is the watch-triggered recommendation-builder for the latest thing you watched. It turns that seed into fresh suggestions, updates the saved dataset, and can optionally send missing titles out for requests. ### What does Fetch Missing items do on this card? It allows missing recommendations from this flow to go directly to Radarr or Sonarr. If you leave these toggles off, the card still builds recommendations and tracks pending items, but it does not send them anywhere. ### What does Approval required from Observatory do here? It adds a review step before direct ARR requests are sent. Missing titles stay pending until you approve them in Observatory. Like the Immaculate Taste card, this only applies to direct ARR mode. ### What changes when I turn on Route missing items via Seerr? - Missing titles are sent to Seerr instead of directly to ARR. - Direct Radarr and Sonarr fetch toggles are turned off for this card. - **Approval required from Observatory** is turned off. ### Why does Run now ask for media type, title, and year on this card? Manual runs on this card also simulate a watch-triggered seed. Enter the item you want to build from, and Immaculaterr runs the latest-watched flow as if that watch event had just happened. Expect a full recommendation run rather than a simple maintenance task. ## Based on Latest Watched Refresher Open in app: [Task Manager -> Based on Latest Watched Refresher](/task-manager#job-recentlyWatchedRefresher) ### What does Based on Latest Watched Refresher do? It is the off-peak refresh card for the latest-watched style collections. It revisits the saved dataset, promotes titles that have become available in Plex, reshuffles the active set, and rebuilds the managed rows. ### When should I use this refresher instead of the collection card? Use the collection card when you want a fresh run based on a new watch event. Use the refresher when you want the saved latest-watched datasets to catch up and reshuffle without waiting for a new trigger. ### What is a good default setup for Based on Latest Watched Refresher? If you want regular background upkeep, enable the schedule and keep it off-peak. If not, leave it off and run it manually when you want a refresh. ## Fresh Out Of The Oven Open in app: [Task Manager -> Fresh Out Of The Oven](/task-manager#job-freshOutOfTheOven) ### What does Fresh Out Of The Oven do? It builds shared Fresh Out baselines from your selected Plex movie and TV libraries using TMDB release dates for the last 3 months, then filters those baselines per Plex user so each viewer only gets movies and shows they have not already watched. Movies and shows can be toggled independently inside the task card, and each user gets their own Fresh Out collections refreshed on every run. ### Where does Fresh Out Of The Oven pin in Plex? Admin gets this row on Plex Home only. Shared users get it on Shared Home only. Fresh Out never pins to Library Recommended. The movie row stays after the other Immaculaterr-managed movie rows, and the TV row stays after the other Immaculaterr-managed TV rows. ### What is a good default setup for Fresh Out Of The Oven? Daily off-peak with both Movies and Shows enabled is a good default because it keeps new releases and premieres flowing in while removing anything a user has already watched. If you prefer manual control, leave the schedule off and use **Run now** after big library updates. ## Plex Watch History Import Open in app: [Task Manager -> Plex Watch History Import](/task-manager#job-importPlexHistory) ### What does Plex Watch History Import do? It scans your Plex server's watched history and feeds it into the same recommendation pipeline as your normal Plex-triggered activity. The import runs through a multi-phase pipeline: 1. **Fetch** — watched movies and TV shows are retrieved from your Plex server library sections. 2. **Classification** — each title is looked up via TMDB and classified as a movie or TV show. 3. **Recommendation generation** — for each classified title (up to 50 per run), similar and change-of-taste recommendations are generated using the same engine as the Plex-triggered flows. 4. **Aggregation** — all generated recommendations are merged, deduplicated by TMDB ID, and capped to the configured collection limit. 5. **Plex History collections** — aggregated results are written to dedicated Plex History Picks and Plex History: Change of Taste Plex collections. 6. **Recently Watched / Change of Taste sync** — the same recommendations are additively injected into the standard Based on your recently watched and Change of Taste collections, preserving any existing rows from Plex-triggered runs. 7. **Immaculate Taste sync** — the Immaculate Taste points system is updated so your full watch history influences the long-lived taste profile. The next Immaculate Taste Refresher run rebuilds the Plex collection with this data included. 8. **Plex collection rebuild** — all affected Plex collections are rebuilt, reordered, and pinned. ### What Plex collections does the Plex history import affect? The import touches several collection families: - **Plex History Picks** and **Plex History: Change of Taste** — dedicated Plex history collections that are fully replaced each run. - **Based on your recently watched Movie/Show** — Plex history recommendations are merged in additively alongside your existing Plex-triggered rows. - **Change of Movie/Show Taste** — same additive merge for change-of-taste recommendations. - **Immaculate Taste** — the points dataset is updated in the background. The visible Plex collection rebuilds on the next Immaculate Taste Refresher run (scheduled or manual). Additive means existing rows from Plex-triggered runs are preserved — only genuinely new recommendations are inserted. ### What happens if I run it again? Titles that were already imported are skipped automatically. Only genuinely new titles from your Plex watch history are processed. The report shows exactly which seed titles were used for recommendations. ### What happens if I have more than 50 watched titles? Each run processes up to 50 unique classified titles. If your history contains more, the remaining titles stay as pending entries in the database. Run the import again from Task Manager to process the next batch. Already-processed titles are skipped automatically. ### Why are other tasks blocked while the import is running? The import follows the same shared job queue as every other task. Because it makes many TMDB API calls and generates recommendations for every seed, it can take longer than most tasks. While it runs, other tasks queue as **Pending** and auto-start once the import finishes and the 1-minute cooldown expires. Rewind shows the live queue state and ETA while you wait. ### Can this task run automatically? No. Plex Watch History Import is manual-only — you must trigger it from the Task Manager card or opt in during onboarding. There is no schedule or Plex-triggered auto-run for this task. ### How do I see which titles were used as seeds? Open the job report after a run — it includes a Seed Titles section listing every movie and TV show from your watch history that was matched via TMDB and used as a recommendation seed. ## Netflix Watch History Import Open in app: [Task Manager -> Netflix Watch History Import](/task-manager#job-importNetflixHistory) ### What does Netflix Watch History Import do? It lets you upload a Netflix viewing-history CSV so that your external watch history feeds into the same recommendation pipeline as your Plex activity. The import runs through a multi-phase pipeline: 1. **Classification** — each Netflix title is looked up via TMDB and classified as a movie or TV show. 2. **Recommendation generation** — for each classified title (up to 50 per run), similar and change-of-taste recommendations are generated using the same engine as the Plex-triggered flows. 3. **Aggregation** — all generated recommendations are merged, deduplicated by TMDB ID, and capped to the configured collection limit. 4. **Netflix collections** — aggregated results are written to dedicated Netflix Import Picks and Netflix Import: Change of Taste Plex collections. 5. **Recently Watched / Change of Taste sync** — the same recommendations are additively injected into the standard Based on your recently watched and Change of Taste collections, preserving any existing rows from Plex-triggered runs. 6. **Immaculate Taste sync** — the Immaculate Taste points system is updated so your Netflix history influences the long-lived taste profile. The next Immaculate Taste Refresher run rebuilds the Plex collection with this data included. 7. **Plex collection rebuild** — all affected Plex collections are rebuilt, reordered, and pinned. ### Where do I get the Netflix CSV file? Log in to Netflix on a browser, go to **Account → Profile → Viewing Activity**, then click **Download All** at the bottom of the page. You will receive a CSV with two columns: `Title` and `Date`. Upload this file as-is — the parser handles date formats, TV episode stripping, and deduplication automatically. One file at a time, up to 5 MB. ### What Plex collections does the import affect? The import touches several collection families: - **Netflix Import Picks** and **Netflix Import: Change of Taste** — dedicated Netflix collections that are fully replaced each run. - **Based on your recently watched Movie/Show** — Netflix recommendations are merged in additively alongside your existing Plex-triggered rows. - **Change of Movie/Show Taste** — same additive merge for change-of-taste recommendations. - **Immaculate Taste** — the points dataset is updated in the background. The visible Plex collection rebuilds on the next Immaculate Taste Refresher run (scheduled or manual). Additive means existing rows from Plex-triggered runs are preserved — only genuinely new recommendations are inserted. ### What happens if I upload the same file again? Titles that were already imported are skipped automatically. Only genuinely new titles are inserted as pending entries and processed. The response tells you exactly how many were new vs already imported, and no job is enqueued if nothing is new. ### What happens if I have more than 50 Netflix titles? Each run processes up to 50 unique classified titles. If your CSV contains more, the remaining titles stay as pending entries in the database. Re-upload or run the import again from Task Manager to process the next batch. Already-processed titles are skipped automatically, so you can safely re-upload the same file. ### Why are other tasks blocked while the import is running? The import follows the same shared job queue as every other task. Because it makes many TMDB API calls and generates recommendations for every seed, it can take longer than most tasks. While it runs, other tasks queue as **Pending** and auto-start once the import finishes and the 1-minute cooldown expires. Rewind shows the live queue state and ETA while you wait. ### Can this task run automatically? No. Netflix Watch History Import is manual-only — you must upload a CSV each time via the wizard during onboarding or from the Task Manager card. There is no schedule or Plex-triggered auto-run for this task. ## Recommendations Open in app: [Command Center -> Recommendations](/command-center#command-center-recommendations) ### What does Recommendations control? Recommendations is the part of Immaculaterr that decides how seed-based suggestions are built and what kind of release mix you get back. - TMDB is always the starting point for candidate titles. - If Google and/or OpenAI are enabled in Vault, they can widen discovery or refine the final list. - The current-vs-future release dial changes how much of the final mix leans toward titles you can watch now versus upcoming titles. - Task Manager still decides whether missing titles stay tracked, go directly to ARR, or route through Seerr. ### What does "Plex-Triggered Auto-Run" mean? Plex-Triggered Auto-Run means the job waits for Plex activity instead of a clock-based schedule. - These jobs do not run on a timer. They wait for the matching Plex event. - **Watched trigger (~60% / ~70%)**: these are default Plex polling thresholds—~60% for "Based on your recently watched" and ~70% for Immaculate Taste. Immaculate Taste can also trigger via Plex webhooks at Plex scrobble timing. - **Repeat-watch dedupe**: once one of these auto-runs completes successfully for the same Plex user, library, and same movie or same show, repeated watches are skipped automatically instead of rebuilding the same collections again. Those blocked duplicates now appear as skipped entries in Task Manager and Rewind. Manual runs still work any time. - **New content trigger**: when a new movie or show episode is added, the cleanup task can trigger to scan for duplicates. You can still run these tasks manually any time from Task Manager. ### How can I run a job manually? Go to Task Manager, open the job card, and press **Run now**. Some jobs ask for a seed (title/year/media type). Others run directly with no input. ### What is the difference between the Collection job and the Refresher job? **Collection** jobs generate new suggestions based on a seed (what you watched), then rebuild Plex collections. **Refresher** jobs revisit the saved dataset, move items from pending to active when they appear in Plex, shuffle active items, and rebuild collections cleanly. Collection-triggered refreshes stay scoped to the triggering viewer/library, while standalone refresher runs sweep all eligible viewers/libraries. ### What Plex collections does the app create? Current base collection names are: - Based on your recently watched Movie - Change of Movie Taste - Inspired by your Immaculate Taste in Movies - Based on your recently watched Show - Change of Show Taste - Inspired by your Immaculate Taste in Shows When multiple Plex users are monitored, Immaculaterr appends the viewer name so each person gets a separate row. ### How are recommendation titles generated? Recommendation runs now use a richer TMDB-based ranking flow instead of simple heuristic scoring: 1. **Seed profile** — the watched title, manual seed, or imported history title is resolved and profiled with extra language and origin hints when available. 2. **Candidate lanes** — TMDB pulls fuller metadata and builds the normal candidate pool plus wildcard lanes for global-language films and hidden gems. 3. **Ranking engine** — candidates are scored across four main signals: content similarity, quality, novelty, and indie/popularity value. 4. **Contextual weights** — the weights change by intent, so latest-watched and change-of-taste runs rank differently, including different released vs. upcoming balance. 5. **Interleaving** — the final list mixes primary picks with wildcard titles so the set stays relevant while still surfacing surprises. If Google or OpenAI are enabled, they can still widen or curate the pool, but the core ranking now follows the flow above. ### What does the ratio of future releases vs current releases do? This dial lives in **Command Center - Recommendations**. It controls how many suggestions are: - **Current releases**: already released and typically available to watch now - **Future releases**: upcoming titles that may not be released yet The system enforces that released stays at least **25%**, so upcoming is effectively capped. ### What happens when a recommended title isn't in Plex? It is recorded as **pending**. Pending items can later become active once they appear in Plex. If the job is allowed to fetch missing items, Immaculaterr can send those missing titles to Radarr/Sonarr directly or route them to Seerr, depending on your task settings. ### How does the refresher move items from pending to active? On refresh, Immaculaterr checks pending titles against Plex. If a title is now found in Plex, it is marked active and becomes eligible for the collection rebuild. ### Why do I see "not enabled" or "skipped"? Those cards are always shown for transparency. - "Not enabled" means you did not configure that integration. - "Skipped" means the job strategy did not need that service for this run. ### Why does the app recreate Plex collections instead of editing them in place? This normally should not create duplicate collections. Immaculaterr keeps track of the Plex collections it created and updates those tracked collections over time. Duplicates usually happen only when app state is lost (for example, app data is corrupted, or the app is removed and reinstalled). In that case, a fresh install may not be able to link to previously existing Immaculaterr-managed collections. ## Plex Library Selection Open in app: [Command Center -> Plex Library Selection](/command-center#command-center-plex-library-selection) ### How does Plex Library Selection affect auto-runs and manual runs? After setup, you can choose which movie/show libraries Immaculaterr is allowed to use. You can update this any time from [Command Center - Plex Library Selection](/command-center#command-center-plex-library-selection). - Auto-runs and manual runs only use selected libraries. - If a run targets a library you turned off, that part is skipped instead of failing the whole job. - If no selected libraries are available for that media type, the run shows a clear skipped reason in the report. - When you save after de-selecting a library, Immaculaterr warns you because that library's dataset is removed and its curated collections are removed from Plex. ## Plex User Monitoring Open in app: [Command Center -> Plex User Monitoring](/command-center#command-center-plex-user-monitoring) ### What does Plex User Monitoring do? Plex User Monitoring decides which Plex accounts can trigger recommendation runs and receive viewer-specific rows. - Each monitored viewer gets a separate dataset. - One person's watch habits do not change another person's suggestions. - If you stop monitoring a user, future triggers from that user stop immediately. - When saving the change, Immaculaterr lets you decide whether to keep or remove that user's existing managed collections. ### How do per-viewer collections and Plex pin locations work? Per-viewer collections do two things: they keep each viewer's recommendations separate, and they pin each viewer's rows to the right Plex surface. - Each monitored viewer gets a separate dataset, so one person's watch habits do not change another person's suggestions. - Admin viewer rows are pinned to Library Recommended and Home. - Shared-user rows are pinned to Friends Home. - The row order stays consistent: Based on your recently watched, then Change of Taste, then Inspired by your Immaculate Taste. ## Immaculate Taste Profiles Open in app: [Command Center -> Immaculate Taste Profiles](/command-center#command-center-immaculate-taste-profiles) ### What's the difference between "Immaculate Taste" and "Based on Latest Watched"? Immaculate Taste is a longer-lived taste-profile collection that refreshes over time. Based on Latest Watched is more immediate: it uses your recent watch as a seed, generates suggestions, tracks pending/active items, and refreshes as titles become available. ### How does the Immaculate Taste collection work? Immaculate Taste is a long-lived per-library suggestion system. You can run it in simple one-lane mode or switch to profile-based lanes for finer control. - **Default mode**: one shared rule set keeps behavior straightforward. - **Profile mode**: each profile can define user scope, media type, include/exclude filters, collection naming, and ARR/Seerr routing. - **Deterministic matching**: profiles are evaluated in order, excluded filters win, and unmatched seeds are skipped and logged. - **Same lifecycle**: suggestions are tracked as active or pending, then refresher runs promote and rebuild as items appear in Plex. ### What are Immaculate Taste profiles and smart filters, and when should I use them? Profiles are the advanced way to split Immaculate Taste into multiple lanes instead of using one shared rule set. Use profiles when you want different rules for different users, media types, or filter sets. If one shared lane is enough, you can stay with the default mode. - If no users are selected, the profile applies to all monitored Plex users. - Included genres or languages act as allowlists. - "Match any filter" means an included genre or language can match. "Match all filters" means every enabled include group must match. - Excluded filters always win over included filters. - If no enabled profile matches, the run is skipped and logged in Rewind. ### How does User scope editing work (All users vs selected user)? In the profile editor, the selected chip in **User scope** decides which settings you are editing. - **All users** edits shared profile settings for everyone currently in scope. - Clicking a user chip edits that user's scoped override only. - Adding a user from search auto-selects that user so settings are ready to customize immediately. - Clicking **X** on a scoped user removes the override and reverts that user back to inherited shared settings (filters and naming). ### How do I rename Immaculate Taste collections from a profile? In **Command Center - Immaculate Taste Profiles**, open a profile and edit **Movie collection base name** and/or **TV collection base name**, then save profile. - With **All users** selected, shared base-name updates keep per-user suffix naming when collections are renamed (for example: `immaculate (ohmz_i)`). - With a specific user selected, scoped custom base names are applied for that user only, without automatically appending the username. - If you remove a scoped user override, that user's collection naming reverts to the inherited shared naming convention. For enabled profiles, Immaculaterr attempts to rename matching managed Plex collections for monitored users in selected libraries. If no existing managed collection matches yet, the next collection or refresher run uses the new base name. ### How do Immaculate Taste points work? Points act like a freshness score for active Immaculate Taste titles. - Freshly suggested active titles get high points. - Pending titles stay at zero until the item appears in Plex. - Active titles gradually lose points when they stop being re-suggested. - When points run out, those older titles can drop from the active set. ### What is "Change of Taste" and how is it chosen? Change of Taste is the row meant to add controlled variety, not just more of the same. It deliberately leans away from your closest matches so the feed does not stay locked to one genre, mood, or era. Expect adjacent genres, different eras, or other nearby taste shifts rather than random unrelated picks. ### What is the Observatory page? Observatory is a swipe-based review deck for Immaculate Taste and related recommendation datasets (e.g., Based on Latest Watched). It lets you approve download requests (optional) and curate your suggestions before or while they land in Plex collections. ### How do I require approval before sending anything to Radarr/Sonarr? In **Task Manager - Immaculate Taste Collection**, turn on **Approval required from Observatory**. When enabled, Immaculaterr will not send missing titles to Radarr/Sonarr until you **swipe right** on them in Observatory. This only applies to direct ARR mode. If you enable Seerr routing for that task, Observatory approval is automatically disabled for that task. ### Why does Observatory say there are no suggestions for my library? It usually means the collection job has not generated suggestions yet for that library and media type. Keep using Plex and let suggestions build up, or run the collection task manually from **Task Manager** for that media type to generate suggestions. ## Reset Immaculate Taste Collection Open in app: [Command Center -> Reset Immaculate Taste Collection](/command-center#command-center-reset-immaculate-taste-collection) ### What does "Reset Immaculate Taste Collection" do? It deletes the Immaculate Taste Plex collection for the selected library and clears the saved dataset for that library (pending/active tracking). After reset, run the Immaculate Taste Collection job again (or let it auto-run) to rebuild suggestions and recreate the Plex collection. ## Reset Seerr Requests Open in app: [Command Center -> Reset Seerr Requests](/command-center#command-center-reset-seerr-requests) ### How do I set up Seerr mode in simple steps? 1. Go to **Vault** and set Seerr URL + API key. 2. Enable Seerr in Vault and run the test. 3. In **Task Manager**, turn on **Route missing items via Seerr** for each task you want. 4. Run the task so new missing titles are requested in Seerr. ### What changes when I turn on "Route missing items via Seerr"? Turning on **Route missing items via Seerr** changes the request path for that task, not the recommendation or tracking side of the job. - Missing titles from that task are sent to Seerr instead of direct ARR sends. - Direct Radarr/Sonarr toggles for that task are turned off. - Approval required from Observatory is turned off for that task. - For Immaculate Taste, Start search immediately is also turned off. - Suggestions, pending/active tracking, and Plex collection updates still continue. - If Seerr is unavailable, those requests are skipped for that run and are not sent to ARR as a fallback. ### What is the difference between in-app approval mode and Seerr mode? **In-app approval mode**: you approve in Observatory, then Immaculaterr sends approved items directly to Radarr/Sonarr. **Seerr mode**: Immaculaterr sends missing items to Seerr, and Seerr becomes the request workflow. Use one flow per task card. If Seerr mode is on, Observatory approval is off. ### How do I clear all Seerr requests from Immaculaterr? Go to [Command Center - Reset Seerr Requests](/command-center#command-center-reset-seerr-requests). After confirmation, Immaculaterr asks Seerr to delete every request regardless of status. This clears **all** Seerr requests—including user-created requests, not only Immaculaterr-managed ones. It clears request records only; it does not delete Plex media files. ## Reset Rejected List Open in app: [Command Center -> Reset Rejected List](/command-center#command-center-reset-rejected-list) ### What do swipes do, and when should I reset the rejected list? - **Swipe right**: approve in approval mode or keep in review mode. - **Swipe left**: reject/remove that suggestion. It goes onto your rejected list so it will not be suggested again. - **Undo**: restores your last swipe. - Desktop keyboard shortcuts: use the left arrow and right arrow keys to swipe the top card. Use [Command Center - Reset Rejected List](/command-center#command-center-reset-rejected-list) when you want previously swiped-left suggestions to become eligible again. ## Collection Posters Open in app: [Command Center -> Collection Posters](/command-center#command-center-collection-posters) ### How does poster artwork work for collections? Can I customize posters? Yes. You can upload custom poster artwork for Immaculaterr-managed collections directly in Command Center. Uploaded posters are saved in app data and stay in place after restarts. If you do not set a custom poster, Immaculaterr uses its built-in default artwork. ## Radarr Open in app: [Command Center -> Radarr](/command-center#command-center-radarr) ### What does "Fetch Missing items" actually do? **Fetch Missing items** is the toggle that lets a collection job send missing recommendations out of Immaculaterr. - In direct ARR mode, movies can go to Radarr and shows can go to Sonarr. - If you leave it off, the app still builds suggestions and tracks pending items, but it does not send requests anywhere. - If you want Seerr to manage requests instead, use **Route missing items via Seerr** for that task. ### If I disable Radarr toggles, what changes? Movie jobs stop making Radarr add/search calls. Recommendations, Plex matching, pending/active tracking, and collection rebuilds continue to work. ### What happens during "Cleanup after adding new content"? It scans for duplicates across libraries, keeps the best copy, and can unmonitor movie duplicates in Radarr. When **Delete duplicate media** is enabled, it can also remove lower-quality duplicate files/versions via the Plex API. The process is designed to be safety-first and report what was changed in Rewind. ### Will it ever delete movies? When **Delete duplicate media** is enabled on the Cleanup After Adding New Content card, Immaculaterr can delete lower-quality duplicate files/versions via the Plex API, keeping the best copy. If that toggle is off, it only unmonitors duplicates in Radarr and does not delete Plex media files. ## Sonarr Open in app: [Command Center -> Sonarr](/command-center#command-center-sonarr) ### How are TV duplicates handled in Sonarr? TV duplicate cleanup is designed to be cautious, not destructive. - TV duplicates are checked with episode-aware and season-aware rules. - Single-episode duplicates can be unmonitored in Sonarr without affecting the whole show. - When **Delete duplicate media** is enabled, lower-quality episode copies can also be removed from Plex (best resolution kept). - Rewind still reports what was scanned, skipped, unmonitored, or deleted. ### What changes if I disable Sonarr toggles? TV-focused jobs stop making Sonarr add/search calls. Everything else around recommendations, Plex matching, and collection rebuilds keeps working. ## Updates & versions ### How does the app check for updates? The server checks the latest stable GitHub release and compares it to the running app version. Stable installs use that stable release check only. Beta installs also check numbered beta Git tags, so versions like `1.7.8-beta` and `1.7.8-beta-2` are tracked separately. The UI surfaces this in the Help menu and can toast when a newer version is available. When an update is available, use the [Setup page](/setup#update-paths-http-only) as the source of truth for update commands. ### Why does it say "Update available"? What should I do? It means a newer stable release or beta tag exists than what your container is currently running. 1. Run [Setup - HTTP-only update (required)](/setup#update-paths-http-only). 2. If you use local HTTPS on port `5464`, also run [Setup - Optional HTTPS sidecar](/setup#update-paths-https-sidecar). ### Where can I see the current version and version history? In the Help menu, tap the Version button. Beta builds show their exact beta suffix there, and you can also view releases on GitHub. For actual upgrade commands, use the [Setup page](/setup#update-paths-http-only). ### Why isn't update checking working? Update checking usually fails for a small set of reasons. - Update checks can be disabled by environment configuration. - GitHub API rate limits can temporarily block checks. - If you're checking a private repo, you may need a GitHub token configured for update checks. Even if update checks are unavailable, you can still update manually from [Setup](/setup#update-paths-http-only). ## Security & backups ### What is APP_MASTER_KEY and why is it required? It is the encryption key used to protect stored secrets at rest (for example, API tokens). It must be stable so the app can decrypt what it previously encrypted. ### Where should I store the master key (env var vs secret file)? - Recommended: Docker secret file via `APP_MASTER_KEY_FILE` - Also supported: environment variable `APP_MASTER_KEY` (64-char hex or base64 that decodes to 32 bytes) - If you provide neither, the app generates a key file in the data directory. ### What happens if I lose the master key? The app will not be able to decrypt previously saved secrets. You will need to reset/re-enter secrets (or reset the account) and store a new stable key going forward. ### What should I back up to restore safely? - Your app data directory (Docker volume) including the SQLite database. - Your master key (env var or key file), so encrypted secrets remain decryptable. - Any deployment configuration (compose files/env values). - By default, the container also writes a pre-migration SQLite snapshot before startup migrations under `/data/backups/pre-migrate`. ### Can I rotate the master key? You can, but anything encrypted with the old key will not decrypt with the new one. The safe workflow is: rotate the key, then re-enter secrets so they are re-encrypted. ### What modern security measures does the app use? The app uses layered protections around saved secrets, sign-in flows, and admin-only actions. - Secrets are encrypted at rest using your stable `APP_MASTER_KEY`. - Sensitive credentials support encrypted envelope transport and secret-reference reuse, reducing repeated plaintext handling. - Session auth uses cookie protections (for example `HttpOnly` and `SameSite=Lax`), with secure-cookie behavior on HTTPS deployments. - State-changing API requests include origin checks to reduce cross-site request abuse. - Login and recovery flows include throttling/lockout protections against brute-force attempts. - Security headers are applied on responses, and admin-only endpoints remain protected by authorization checks. ## Troubleshooting ### I can't log in / I keep getting logged out - what do I check? - Use one base URL consistently (for example, stay on only `http://:5454` or only `https://:5464`). - If you use a reverse proxy, ensure forwarded protocol headers are correct (especially `X-Forwarded-Proto`) and keep `TRUST_PROXY=1`. - Check browser cookie policy for this site (private mode and strict tracking protection can block session cookies). - After config/protocol changes, clear site cookies and sign in again. ### Immaculaterr can't reach Plex/Radarr/Sonarr/Seerr - what URL should I use from Docker? Use URLs from the container's point of view: - Linux with `--network host`: `http://localhost:` - Docker Desktop (Mac/Windows): `http://host.docker.internal:` - Same Docker network/compose stack: use service DNS names like `http://radarr:7878` or `http://sonarr:8989` Then use the test buttons in **Vault** to confirm each integration from inside the app. ### TMDB requests fail - what's required and where do I configure it? - Configure TMDB in **Vault** and save a valid API key. - Run the TMDB test in Vault to verify connectivity and key validity. - If TMDB is missing or failing, recommendation jobs may be incomplete or fail based on your selected strategy. ### Why didn't a job trigger even though I watched past the threshold? - Auto-Run is off for that job in Task Manager. - Plex polling is disabled or not reaching Plex. - The item is too short (the default minimum is 1 minute for polling-trigger checks). - The job was recently triggered and deduped to prevent repeated runs. - The triggering user may be disabled in [Command Center - Plex User Monitoring](/command-center#command-center-plex-user-monitoring). - The source library may be disabled in [Command Center - Plex Library Selection](/command-center#command-center-plex-library-selection). - The seed's genre or audio language may be excluded by your rules in [Command Center - Immaculate Taste Profiles](/command-center#command-center-immaculate-taste-profiles). ### A job ran but the report looks empty - what does that mean? - Most often it was a no-op run: no new seed, no pending titles became available, or the collection was already up to date. - Open the report steps and logs to see exactly which stage skipped and why. - In Rewind, use **See raw response** for the full run summary/log JSON when you need deeper debugging. ### Collections created but no poster shows - why? - The container image may be outdated (pull/update and restart). - If you renamed collection bases, your old mapping may no longer match the current collection names. - Plex can lag on metadata refresh; force-refresh and wait a minute. ### How do I view logs and job history? - **Rewind**: run history + job reports (including step breakdown and raw response) - **Logs**: raw server log lines ### When should I use reset tools (Rejected List, Seerr Requests, Immaculate Taste Collection)? - Use [Command Center - Reset Rejected List](/command-center#command-center-reset-rejected-list) when you want previously swiped-left suggestions to become eligible again. - Use [Command Center - Reset Seerr Requests](/command-center#command-center-reset-seerr-requests) to clear all Seerr requests (including user-created ones, not only Immaculaterr-managed). - Use [Command Center - Reset Immaculate Taste Collection](/command-center#command-center-reset-immaculate-taste-collection) when you need to rebuild that library's dataset/collection from a clean state. ## Glossary ### Auto-Run A toggle that allows a job to run automatically when its trigger condition occurs. ### Plex-Triggered Jobs that start based on Plex events detected by polling (watch threshold, new media, and related triggers). ### Scheduled Jobs that run on a time schedule (daily/weekly/monthly/cron). ### Seed The movie/show that triggers a run and is used to generate recommendations. ### Pending A suggested title that is not in Plex yet (but may become available later). ### Active A title that is in Plex and eligible to appear in a curated collection. ### Refresher A job that revisits the saved dataset, activates newly-available items, shuffles, and rebuilds collections.