Skip to content

v1.7.3 — Silent failures made visible

Back to all updates
v1.7.3August 27, 2026

A rollback no longer replays migrations, and three silent failures now fail visibly.

Data carries the version it was last raised to. A server that read data from a newer version correctly ran no upgrade, but then stamped its own lower version onto the data. When that player next reached a server on the newer version, every migration in between ran a second time.

join a rolled-back server version 3 → marked 2
return to the newer one migration 3 runs again

A migration that doubles a currency doubled it again. A version the server does not understand is now left exactly as it is, and reported once. Data behind the server still climbs one step at a time, in order.

Compress.Decode is documented to return nil for anything it cannot read, so callers do not wrap it in pcall. A payload whose bytes were altered in place could still make it raise.

A stream that cannot be followed is now dropped whole and read back as nil, never as the part of a value that decoded before the trouble.

Oversized variable-width numbers are refused at the sender

Section titled “Oversized variable-width numbers are refused at the sender”

NumberVarU and NumberVarI stop at five bytes. A value past that, or a negative value given to NumberVarU, was written without complaint and refused by the receiver, so the call vanished and nothing was logged near its cause.

Both now refuse at the sender, the way fixed-width numbers have since v1.7.1:

BuyItem argument 1 carries 0 to 34359738367, and was given 34359738368
TokenRange
NumberVarU0 to 34359738367
NumberVarI-17179869184 to 17179869183

Past those ranges, carry a BigNumber as text.

Tween.Stopped reports gone when a tween’s target leaves the world. It fired for a target reparented away but not for one that was destroyed. Both are reported now.

Every change in this release is listed in the changelog.