Skip to content

ImportList minRefreshInterval cannot be changed via the API (PUT is silently ignored) #23

Description

@jbob06

Chaptarr version 0.9.911.0.

An import list's minRefreshInterval field (e.g. 12:00:00 on a Goodreads Bookshelves list) cannot be changed through the API. The request is accepted without any validation error, but the change never actually applies.

Steps to reproduce:

  1. GET /api/v1/importlist/{id} shows minRefreshInterval: "12:00:00".
  2. PUT /api/v1/importlist/{id} with the full object, changing only minRefreshInterval to "00:05:00".
  3. Response is HTTP 202. The response body already shows minRefreshInterval: "12:00:00", not even echoing the requested value back.
  4. A follow-up GET /api/v1/importlist/{id} confirms the stored value is still "12:00:00".

Expected: either the field updates to the requested value, or the API returns a clear validation error explaining that the field is fixed/has a minimum.

Actual: the request is silently accepted (202, no error) and the change is discarded.

Impact: there is no way via the API to lower an import list's refresh interval, or to force a fresh source re-fetch ahead of schedule. Manually triggering POST /api/v1/command {"name":"ImportListSync"} before the interval elapses also does not force a real fetch, it returns "message":"No list items to process"} and does nothing.

Happy to provide more detail if useful.

Activity

  1. added a commit that references this issue on Sep 25, 2026
    2d7f24d
  2. bhoffman20 commented on Oct 3, 2026

    @bhoffman20
    Collaborator

    Related: #122 makes the Goodreads list refresh interval a per-list setting, which covers the use case behind this.

  3. jbob06 commented on Oct 3, 2026

    @jbob06
    Author

    Thanks, #122 covers the practical need here: being able to lower the Goodreads shelf refresh from 12h.

    The API bug in this issue is separate, though. A PUT that changes top-level minRefreshInterval still returns 202 and silently discards the change, and #122 doesn't touch that path. #86 makes that PUT return a 400 that explains the field is read-only. I just updated its message to point at a per-list refresh setting when the list type has one. The two PRs don't conflict: the UI echoes back the minRefreshInterval from its last GET, so saving a new Goodreads interval passes the check. I'd suggest keeping this open until one of them lands.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions