Skip to content

Requests

Detailed app behavior for requests.

  • Correct TV matches: Dahmer, Menendez, Ed Gein and Lizzie Borden use their bundled Monster seasons independently. Requests, progress, history, library badges and episode-download choices stay scoped to the selected story, with TMDB source-season labels. Unknown matches or failed library reads disable submission and offer a retry; saved delivery explains refresh waits and admin attention. The Sonarr link uses the server-resolved target. TV premiere/next-episode dates keep using the selected title’s TMDB dates.
  • Corrected TV poster badges: search, discovery shelves and browse grids use that same source-title status in the default Sonarr library, including Requested while delivery is queued and Pending while approval is required. Partial episode counts include only mapped seasons. Confirmed missing/denied titles have no pill; failed or unresolved reads say Status unknown, never inherit the parent’s availability. Mounted cards share a 30-second cache with at most four concurrent reads; request/repair acceptance, correction save/pause/reset, live events, refresh and resume invalidate it. Account, grant, policy and library changes discard old reads. Covered routes, inactive tabs and backgrounded apps do not poll. Older servers retain their existing badges, and Sonarr-native library rows still describe their actual parent series.
  • One-tap requesting with status-aware labels: Request → Pending (awaiting approval) → Requested → Downloading → Available; partially-available shows get Request More, which jumps to the season picker. The ready state stays provider-neutral rather than assuming a particular playback app. Available movie/show pages show that status once in the main banner; the status-details action remains for incomplete requests. The season picker disables Available, Requested, Downloading, and Pending seasons; All/First/Latest select only actionable seasons, and the request button disappears when none remain. An unreleased season can be requested once; approval-pending titles cannot be resubmitted through the season picker. Selection resets on library changes and follows refreshed status, with requests held while status is loading or cannot be verified.
  • Season-level choice: per-season availability, multi-select, “Request N seasons”; shown only to users the admin has allowed to choose (others inherit the default scope). Each row also carries the season’s first-air year when TMDB knows one (“Season 1 · 2019”), so a long-running series’ seasons stay tellable apart at a glance; a season TMDB has no air date for keeps rendering its bare title.
  • Library choice (HD/4K splits): a user granted more than one Radarr or Sonarr library sees a Library section on the request sheet (labeled with the admin-chosen instance names, e.g. “Movies” / “4K Movies”) and a chip row on the title’s detail dock carrying each library’s own status (“Movies · Available”, “4K Movies · Not Available”). Tapping a chip retargets the whole screen: status, request, downloads, report-a-problem: at that library, and switching the sheet’s library reloads that library’s own quality profiles. The same title can be requested on both libraries; each request is its own approval and history row. Single-library users see none of this and keep the one-tap flow exactly.
  • Not out yet, rather than stuck: a movie shows the cinema and digital release milestones it hasn’t reached, right under its status: “In cinemas Jul 3 • Digital Sep 12”. Each date drops off the line once it passes, so a title still waiting on its digital release says only that, and a fully released title says nothing at all. This line and the Release dates section share the same regional TMDB schedule, including for movies not yet added to Radarr; missing regional milestones are never filled from Radarr’s unscoped dates. Limited cinema releases keep their distinct label, disc dates stay in the full schedule only, and an available movie stays silent because you can already watch it.
  • Release dates for any movie, in a library or not: the movie detail page lists the cinema, digital and disc milestones TMDB knows for the device’s country (falling back to the US, then to any region TMDB has dates for), whether or not the title has been added to Radarr. A milestone still ahead is highlighted; one already passed is shown muted rather than dropped, since it’s still useful reference information. A milestone TMDB doesn’t know about is simply absent: never a blank row or a “TBA”.
  • Unified music search: Desktop and mobile use one result list: MusicBrainz albums, EPs, and singles in relevance order, then independently loaded artists. The selected instance’s actual library records and saved requests attach by release-group/artist ID; matching library-only records supplement the catalog without merging same-title identities. Artist pages paginate by exact ID, and album credits include navigable artist IDs. Query, instance, loaded pages, metadata, and scroll position survive navigation. Superseded searches are cancelled; each search has a ten-second deadline. Provider failures leave usable results visible and name what could not be checked.
  • One music request control: The album page keeps one control for Request, Waiting for approval, Requested, Downloading, Available, or Needs attention, with retry/cancel actions. New requests send the release-group ID as native foreign_id. The saved receipt refresh uses include_live=false; availability loads independently, so a stalled library cannot hide an accepted request or reset the page.
  • Saved book and album requests: Native book requests acknowledge the saved request before Chaptarr reads or writes. Music retains public and native requests. Book formats progress independently, with format-specific retry and request cancellation; approvals remain separate. Saved status reads use include_live=false, while availability is read separately. Unresolved older Open Library requests show Needs attention, cancellation, and a native search action; verified native bindings continue under their existing approval requirements.
  • Book formats: the eBook and Audiobook rows on book detail are the request action: tapping a still-open row requests exactly that format and names the outcome. Each row continuously translates live Chaptarr truth into Available / Downloading / Requested / Pending approval / Request denied, and a still-open row carries its own Request action instead of a state label. A monitored format is already Requested, failures stay unknown instead of becoming requestable, and only the still-open rows are tappable. A request the server confirmed is never re-offered while that book is on screen, even if the next status read has not caught up with the arr yet; only an admin’s denial or newer live truth moves it back off Requested, so a requester can neither double-request nor read the lag as failure. When Chaptarr files the created record under its own canonical id, the detail page follows the server-reported canonical_foreign_id automatically, so ownership, downloads, and later status reads stay bound to the record the request actually created.
  • Available-file downloads: when enabled for the selected media instance, an exact live movie, eBook, or audiobook file can be downloaded from its requester detail; TV seasons present their available episodes as individual choices so each tap starts only one download. A global deployment allowlist and the instance’s own path mappings must both cover the file, and download buttons appear only for files a server-side coverage check confirms the mappings can serve (unknown verdicts fail open; ticket issuance stays the authority).
  • Live status: request state and download progress update in real time over WebSocket, including changes made directly in the arrs (webhooks).
  • Album requests: an album’s detail carries one request button under the same guards as book formats: live truth translates to Available / Downloading / Requested / Pending approval (a partly-downloaded album reads Partial), a confirmed submission is never re-offered while the album is on screen, native library pages keep an unreadable status unknown, and the page follows the server-reported canonical_foreign_id when MusicBrainz merges re-key the record. Requesting an album adds its artist with exactly that album monitored: one request never subscribes the discography.
  • A request the library isn’t ready for says so: a book accepted while Chaptarr is still importing its author reads Waiting for library, not Requested, with a standing explanation that the request is saved and being retried automatically and that nothing is expected of the requester. There is no spinner, ETA, or Retry button, because none of them would be true; the format stays covered and unrequestable, and the row moves itself on to Requested / Downloading / Available, or to Pending approval if the server eventually hands it to a human. Servers that don’t send a wait behave exactly as before.
  • The approval queue shows what it is deciding (admin): each pending row leads with the title’s poster and opens the content itself on tap: movies and TV to their detail page, books to the exact Chaptarr record the request named (pinned to that library, so an approval reviewed after the admin switched drawers still lands on the right record). Artwork is best-effort decoration: a pending book has no cover to resolve yet, and a slow TMDB is abandoned rather than held open: so rows fall back to a media-type placeholder, and a legacy row that stored no identity is simply not tappable. Approve and deny stay where they were either way. A queue row that isn’t a routine yes/no says so: a request whose automatic add already ran and failed names that and the action that actually resolves it, because approving it just replays the same failed add. A book the library couldn’t match keeps Approve and Deny and says to add it in the library first. A request whose author-import wait ended: the library declared the import failed, it was cancelled there, or the add failed along the way: swaps Approve for Try again: one tap replays the add, which completes the request on the spot if the author has landed since, or re-queues the import and puts the row back under the server’s automatic watch; Deny stays as the close. All of these still count toward the badge; a person really does have to act on them. Below the queue, a separate Waiting for library section lists the requests the server is retrying on its own: requester, title, format, pinned library, how long it has waited, and when it was last tried: with no Approve or Deny, because the server refuses an early approval on them. Nothing in that section is counted by the Approvals badge, the hamburger dot, or a push: those still mean a person must act. If the list can’t be read, the section says so rather than showing an empty list; a server too old to have it shows no section at all.

View the maintained source for this page.