Skip to content

fix: restore multi-instance routing broken by Seerr v3.5.0 update - #30

Open
actuallyevan wants to merge 2 commits into
varthe:mainfrom
actuallyevan:fix/seerr-3.5-compatibility
Open

actuallyevan wants to merge 2 commits into
varthe:mainfrom
actuallyevan:fix/seerr-3.5-compatibility

Conversation

@actuallyevan

Copy link
Copy Markdown

Background: What changed in Seerr v3.5.0

In Seerr v3.5.0 (PR #3385), status checks were added to PUT /api/v1/request/:id and POST /api/v1/request/:id/approve. Requests can only be modified or approved while in PENDING status. Subsequent update or approval attempts return:

409 Conflict: Only pending requests can be approved or declined.

Because Redirecterr handled multi-instance rules by updating and re-approving the same request ID in a loop, the first instance succeeded, but subsequent instances failed with a 409 error.

Solution

Redirecterr aligns with Seerr's dual-tier media model (separate request entities for standard vs. 4K media):

  • is_4k instance configuration: Added an optional is_4k: boolean property to instance definitions (defaults to false).
  • Secondary request dispatch: When a rule matches multiple instances, the primary instance updates and approves the original request. The secondary 4K instance creates a request via POST /api/v1/request with is4k: true.
  • TV season handling: Forwards requested seasons (seasons: [1, 2] or "all") when creating secondary series requests.

Scope & Current Limitations

  • Constrained to 1x Standard + 1x 4K: Because Seerr maintains two quality slots per media item (standard and 4k), multi-instance routing is constrained to at most one standard and one 4K instance. Routing to 3+ instances or multiple instances of the same tier (e.g. two standard Radarrs) is rejected at startup.
  • Interim bridge until native Seerr support: This approach (and Redirecterr's multi-instance routing in general) acts as a band-aid until native multi-server routing is merged upstream in Seerr (seerr-team/seerr#2452), which will handle this within Seerr and render external redirect tooling obsolete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant