Skip to content

Update notice shows "1.14.7 is available" on a server that already runs 1.14.7 #552

Closed

Description

@strausmann

What happened

Admin → Registrierung shows an update notice for the version that is already running:

Kept 1.14.7 is available — This server runs 1.14.7. The upgrade follows the steps in the release notes; Kept never updates itself.

What you expected

No notice when the running version equals the latest release (or a notice only for a newer one).

How to make it happen again

  1. Run 1.14.7.
  2. Open Settings → Admin → Registrierung (the notice may show on other admin tabs too).

Where

  • Kept version: 1.14.7
  • How it runs: Compose
  • Browser: desktop, web app
  • Language: German

Activity

  1. strausmann commented on Nov 13, 2026

    @strausmann
    ContributorAuthor

    Checked against main (eb6aa69). The notice comes from a stored check result that outlives the upgrade:

    1. The check compares correctly at the time it runs: newerThan() in apps/server/src/updates/check.ts returns a release only if compareSemver(version, running) > 0. On the instance it last ran while 1.14.6 (or older) was running, so it stored latest = 1.14.7 in instance_settings.
    2. The job (apps/server/src/updates/job.ts) runs hourly but asks GitHub only about once a day, at a random hour per instance (updateCheckDue). After the upgrade, nothing re-evaluates the stored result until that next run.
    3. readUpdateCheck() returns stored.latest as it is, with no comparison against the running KEPT_VERSION.
    4. UpdateLine (apps/web/src/components/ops/update-line.tsx) shows the notice whenever updates.latest is set, and prints the running version from the status right next to it — hence "1.14.7 is available … this server runs 1.14.7".

    So it heals itself at the next daily check, but for up to a day after every upgrade the notice offers the version that is already installed.

    Possible fix: in readUpdateCheck() drop latest unless compareSemver(stored.latest.version, KEPT_VERSION) > 0 (the read already knows the running version), or have the job re-run the check once at start when the stored result is not newer than the running version. A test: store latest = X, run with KEPT_VERSION = X, expect latest: null.

  2. strausmann commented on Nov 13, 2026

    @strausmann
    ContributorAuthor

    Confirmed on the instance: clicking Check now (Admin → Status → Updates) cleared the notice immediately — the card now reads "Up to date", checked just now, release 1.14.7 (database at migration 0176). That matches the analysis above: the stored result from before the upgrade was only replaced by a fresh check. Until a fix lands, Check now after an upgrade is the workaround.

  3. added
    bugSomething doesn't work as it should
    area: serverAPI, database and jobs (apps/server)
    area: webThe app's screens (apps/web)
    on Nov 13, 2026
  4. added this to the 1.14.8 milestone on Nov 13, 2026
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

    area: serverAPI, database and jobs (apps/server)area: webThe app's screens (apps/web)bugSomething doesn't work as it should

    Type

    No type

    Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions