Skip to content

Rules using Plex values silently never complete on a Movies library #2771

@seannymurrs

Description

@seannymurrs

What's happening

Any rule that uses Plex - ... values against my Movies library executes "Executing rules" and then never produces another log line. The collection stays empty, the UI shows the rule as still running indefinitely, and the underlying process appears completely idle. Same rule structure works fine against my TV library.

Setup

  • Maintainerr running in rootless Podman on Whatbox shared hosting
  • Plex (via plex.direct URL), Radarr, Tautulli all configured and reachable
  • Movies library: ~807 items
  • TV library: works fine; rules complete in ~9 seconds
  • DEBUG logging enabled via UI toggle (visible from CollectionsService and ServarrApi, but RuleExecutorService itself emits nothing at debug level)

Example rule that hangs

  • Library: Movies
  • Single clause: Plex - [list] Viewed by (username) contains <my-username>
  • Action: Unmonitor and delete

Log output

18:50:07  [INFO] [RuleExecutorService] Starting execution of rule 'Delete Watched (Movies)'
18:50:07  [INFO] [RuleExecutorService] Executing rules for 'Delete Watched (Movies)'
[nothing further — for hours]

For comparison, the working TV rule logs:

[INFO] Executing rules for 'Delete Watched (TV)'
[INFO] Adding 12 media items to 'Delete Watched (TV)'.
[INFO] Execution of rules for 'Delete Watched (TV)' done.
[INFO] Synced collection 'Delete Watched (TV)' with media server

Process state during the hang

Captured ~30 minutes into a "running" Movies rule:

State:    S (sleeping)
VmRSS:    81 MB
Threads:  11

Active TCP connections from inside the container:

  • One long-lived connection to Plex (idle — same one always present)
  • No connection to Radarr
  • No connection to Tautulli
  • No per-item activity of any kind

What I've ruled out

  • Network/auth to Plex: Direct curl from inside the Maintainerr container to /library/sections/1/all returns the full library (807 movies) in 365ms. Per-item metadata calls return in ~50ms.
  • Network/auth to Radarr: Direct curl from inside the container returns the full /api/v3/movie response (5.1 MB) in 543ms with HTTP 200, using the API key stored in radarr_settings.
  • Plex being wedged: Initially I had three movies stuck on "Updating Metadata" in Plex Activity. Restarted Plex, confirmed activity is now empty. Re-ran the rule — same hang behavior, no new metadata refresh activity in Plex this time. So whatever's hanging is not Plex doing on-demand metadata work.

What's odd

The rule produces no external HTTP traffic at all after "Executing rules" — no Plex calls, no Radarr calls. The process just goes to sleep with low memory and stays there. It's as if the executor enters a wait state immediately upon starting, before doing any actual work.

The rule status is also tracked only in-memory (the rule_group table has no status column), so a hung rule means the UI spinner stays forever and there's no way to cancel without restarting the container.

Asks

  1. Is there any known reason a Plex-valued rule would silently no-op on a larger library? My Movies rule and TV rule are structurally identical except for the library.
  2. Could RuleExecutorService get DEBUG instrumentation around early initialization, library enumeration, and the per-item evaluation loop? Right now it's a complete black box between "Executing rules" and "Adding N items," which makes silent hangs impossible to self-diagnose.
  3. Track rule running state in the DB rather than memory-only, so a stuck/crashed task doesn't leave the UI permanently spinning.

Happy to provide more detail or run additional diagnostics if helpful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions