A Rust server owner updated a long-running server on patch Thursday, logged back in, and watched bases fall down. Facepunch admitted the bug in its own postmortem, and never published the mechanism behind it. That honesty is the lesson.
At a glance
Rust, a survival game by Facepunch Studios, in early access at the time of this incident.
The source: Facepunch Devblog 80, a postmortem written after a broken Thursday patch.
The bug: a save bug on the original server release of that patch. Long-running servers that updated to it saw a lot of buildings fall down.
What did not break: subsequent restarts had no problems, which is not the same as nothing being lost.
What the postmortem does not give: no mechanism, no affected count, no restore claim, no named author, no calendar date in the fetched text.
A separate same-patch problem, sound pooling, was an untested last-day addition and was disabled by an update. It is not the save bug.
Last verified: October 27, 2026.
Patch Thursday, and a server that had been running a while
Facepunch opens Devblog 80 with an apology, in plain language: the patch on Thursday was broken, and the team did not communicate well. That is the whole tone of the postmortem, and it is worth copying before any of its details. The game was in alpha, the author writes, but that is no excuse for throwing just anything at the main branch. The trigger for the worst bug was specific, and the postmortem states it exactly: if you were running a server for a while, then updated your server to the patch, a lot of your buildings would fall down. It does not say every server, every player, or first-time installs. It says subsequent restarts had no problems. Read that sentence twice, because the rest of this article turns on it.
The postmortem never explains the mechanism. There is no save-format change, no serialization mismatch, no stability recalculation, and no code path named anywhere in it, and this article will not invent one to fill the gap. What it does explain is the context that made the bug possible. The patch touched a lot at once, and a lot of new bugs came with it. Sound pooling, a last-day, untested addition, made a lot of negative difference and was disabled by an update, which seems to have fixed the problems most people were experiencing. That was the sound problem, not the save problem, and merging the two would be a second bug, this time in the retelling.
Why nobody caught it on the dev branch
The postmortem is blunt about testing. There was no internal QA team. The team relied on people playing the dev branch, but most of the problems in this update were visible on the dev branch and nobody was playing on it, because of those bugs. Internal error reporting did not differentiate between the dev branch and the main branch, so errors reported on the dev branch were eclipsed by day-to-day errors on the main branch. The testing pipeline did not fail in one place. It failed in three: nobody staffed to test, nobody playing the test branch, and reports that could not tell test errors from live errors.
Thursday patching was deliberate, not accidental. The postmortem explains that patches went out on Thursday instead of Friday because the team expected bugs and wanted a day to fix them before the weekend. The stated lesson then breaks the habit it describes: feel less bound by the patch day, delay what is not ready and take the heat, and keep work on the dev branch until it has a reasonable amount of testing, even if that means irregular patches. One more boundary matters for honesty. The same postmortem mentions memory reports that only seemed to start after an update to Unity 5.2, and marks that observation as not confirmed. It is a memory observation, not a cause of the collapse, and this article keeps it that way.
What to reuse, stated as general practice, not as Facepunch's fix
Facepunch published no fix procedure for this incident, so the reusable part of this story is process, not code. Treat every patch as a data-loss rehearsal. Take a snapshot before patching, and restore from it once somewhere that is not production, so you know the snapshot works. Upgrade a copy of the live world first, not the live server. Roll out to one server before the fleet, with a named person who can call the rollback. Write the player-facing status note before patch day, not during the outage. None of these steps is attributed to Facepunch, because the postmortem does not state them. They are what the incident teaches, stated as lessons, not as history.
What to do Monday morning
Snapshot taken, and restored once off production, before any patch touches a live server.
Upgrade tested on a copy of the live world, including a world that has been running a while, not just a fresh install.
One-server canary before fleet-wide rollout, with a named rollback decision-maker.
Rollback ready: the previous build and the pre-patch snapshot are both at hand, not just documented.
Players told before patch day: what is changing, when, and where status updates will appear.
Separate test-branch errors from live errors in reporting, so test-branch signals cannot be drowned out.

