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.
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_VERSIONwent 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 messageExpected 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.jsusesregisterType: '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 placeconnect_reply_orphanis 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.