Skip to content

Explain a version mismatch instead of quoting the payload error #40

Description

@NiKrause

Not to build now — there are no studios in the field, so nothing to protect. This records the trigger, because the timing is counter-intuitive.

PAYLOAD_VERSION went 1 → 2 between webrtc-qr 0.1.0 and 0.3.0, and we are now on 0.6.0. A device on an older build fails to pair with the literal message Expected a version 2 offer payload.

The message has to ship in the build that is behind. It helps the outdated device, and that device runs the code we gave it back then. Adding it after the next payload break does nothing for anything already in the field — so the deadline is before the first studio has devices in daily use, not when a break happens.

Smaller than it first looks: vite.config.js uses registerType: 'autoUpdate', so a device that reloads at all picks up the new build and heals itself. The acute case is a counter tablet left open for days. That also makes "reload the app" truthful advice, which it would not be without autoUpdate.

What it is

Map the version error to a sentence in handleInbound — the same place connect_reply_orphan is already mapped — plus two translations. The error is thrown before signature verification, so it is unambiguous and not disguised as forgery.

When

On the checklist for onboarding the first studio, next to the legal review of the privacy statement (#20) and the student notice template.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions