Guidefor server owners3 min read
Upgrading a Minecraft server from 26.1 to 26.2
A drop-to-drop upgrade inside the same year. Much smaller than the jump out of the 1.x line, and there are still four things that will catch you.
What is different this time
Moving from 1.21.11 to 26.1 meant changing the Java runtime, converting a world across a numbering era, and re-checking every plugin, all at once. This is not that.
26.1 to 26.2 stays inside the same year and, in all likelihood, the same Java requirement. Confirm that rather than assuming it, with the Java version checker on both versions: if the required major is the same, you can skip the entire runtime step, which is most of the work removed.
What remains:
- The world still converts, and conversion is still one way.
- The server API still changes across a drop, so plugins still need checking.
- Players on 26.1 will probably not be able to join until they update.
Back up anyway
The world converts. Conversion has no reverse. Every argument in backing up before an update applies unchanged; the only thing a smaller upgrade changes is how likely you are to need the backup, not how badly you need it when you do.
Take the world, the plugin folder with its configuration, and anything a plugin writes to a database. Then restore it into a scratch directory and start a 26.1 server on it, so you know the backup is a backup rather than a file.
Check a stable build exists
A build marked experimental is the project telling you not to run it in production yet. What runs on 26.2 lists every server project with a build for it, and says whether that build is stable.
If your software only has an experimental build for 26.2, this is the moment to wait rather than the moment to push through.
Plugins are the actual work
Across a drop, the server API changes: methods move, signatures change, some things are removed. A plugin compiled against 26.1 can load fine, or fail at startup, or load and break the first time a particular event fires. The third is the worst and the reason to test rather than to hope.
Go through plugins/ and sort every jar into three piles:
- Has a 26.2 build. Download it. Delete the old jar rather than leaving it beside the new one.
- No 26.2 build, actively maintained. Look at the issue tracker for an estimate. If more than one or two of your plugins land here, waiting a fortnight is cheaper than working around them.
- No 26.2 build, abandoned. Find a replacement now. An unmaintained plugin does not become maintained by being upgraded around.
The plugin catalogue filters by Minecraft version directly, and the support claim comes from each author's own release metadata rather than a list somebody keeps by hand.
Convert a copy first
cp -r world world-testconvert
Start 26.2 against world-testconvert with no plugins at all. Let it load, fly around
spawn, read the log for conversion errors, stop it.
A clean conversion with nothing else running tells you the world is fine. Doing this with thirty plugins loaded means an error in the log tells you nothing about which of the thirty-one moving parts caused it.
Then add plugins back in groups rather than all at once. Permissions and economy first, since most other things depend on them.
Tell players before, not after
A client on 26.1 will be refused by a 26.2 server unless the two share a protocol version, which across a drop they usually do not. Check it in one lookup with the connection checker and put the answer in your announcement.
If you have players who cannot or will not update, ViaBackwards on the server lets them keep joining. Supporting many client versions covers what that does and does not carry across.
The first hour
Watch four things and nothing else:
- The full startup log, once. Every plugin that failed to load says so there, at startup, and never again.
- Tick time. Freshly converted chunks are the worst case for performance. Give it a few hours of real play before concluding anything, because chunk conversion is a one-time cost.
- Permissions. The most common post-upgrade complaint is somebody losing access to something, and it is nearly always a permissions plugin that loaded but did not read its old configuration.
- Whether players can actually connect. Half of them did not read the announcement.
Keep the backup for a week. Problems from an upgrade surface when somebody visits a chunk nobody loaded during testing.