World linkage error explained
#1
April 20, 2016 edit:
As of April 20 (#3150), this error has been removed from Cuberite. If you downloaded Cuberite prior to April 20 and are getting that error, then updating Cuberite is the easiest solution.

April 14, 2016 edit:
If you downloaded Cuberite between the 13th and the 14th of April, please re-download Cuberite. Those builds create this error as a a false alarm. This has been fixed. See #3141 for more info.


You are probably here because your server is refusing to start and is directing you to this thread. I will explain this error in detail below.

What is this error?
Starting from February 9, 2016, the server became strict about world linkage configuration. If your nether and/or end portals lead to invalid worlds, the server will now refuse to start. Previously, the server would let you get away with this and would create the invalid world on the fly. See #2810 for technical info.

What is an invalid world?
An invalid world is a world name not mentioned in settings.ini, but mentioned in a world.ini. For instance, if you configured your overworld (typically called "world") nether portal to lead to world_nether, but your settings.ini has no world called world_nether, then world_nether  is an invalid world, and the server will refuse to start until you fix your overworld configuration.

But I didn't touch the default configuration!
Even default configurations created by servers downloaded prior to February 9, 2016 can have invalid worlds.

What do OverWorldName, NetherWorldName, EndWorldName do?
They determine where each world's portals lead to. For instance, if myAwesomeWorld/world.ini has this setting:  NetherWorldName=world2, then stepping through a nether portal in myAwesomeWorld leads to world2. If you don't have a world called world2 in settings.ini, the server will refuse to start.

What do I need to do?
If you don't care about preserving the world that the server is complaining about, just delete its folder and restart the server. If you do care about keeping that world, read on.

How do I fix this without removing the world?
In one of your world.ini files there is an invalid world in one of the following configuration lines: OverWorldName, NetherWorldName, EndWorldName. You need to make sure these settings are either set to existing worlds, or set to blank. A blank line means that particular world's nether/end portals will be disabled.

Guide me through this
Follow the steps below:
  • Open settings.ini, make sure the worlds listed there are the worlds you want enabled.
  • Open <Problematic World's name>/world.ini. Make sure this is the world that the server is complaining about.
  • If your problematic world is a nether or an end world, there should be a configuration line called OverWorldName. Edit that value, and put either a valid world or a blank line instead. The value must be a world listed in settings.ini.
  • If it's an overworld, there should be a configuration line called NetherWorldName, and a configuration line called EndWorldName. As before, set both of them to either existing worlds, or to blank.
  • Note: Some worlds created prior to February 9, 2016 are called x_nether or x_end but are in fact overworlds! If you have such a world, consider removing it or renaming it.

Why can't the server automatically fix this?
The server already autofixes this properly for most people who have default configs, but unfortunately the autofix doesn't cover everyone. The autofix does not cover:
  • People with non-default worlds or non-default world linkages.
  • People with default configs who downloaded a server between Jan 12, 2016 and Feb 8, 2016, and had a default settings.ini created prior to Jan 12, 2016. Note that this means that completely fresh installs during that time got the proper autofix.
  • People with default configs who downloaded a server between Jan 12, 2016 and Feb 8, 2016 and regenerated a world_nether or world_end by removing its folder.
  • Some edge cases which I have not considered are probably not covered as well.
See #2821 for technical details.


Still need help? Feel free to post any questions below.
Reply
Thanks given by: Seadragon91 , xoft , NiLSPACE , sphinxc0re
#2
I added autofix info to the post.

Could anyone move this to "general discussion" and then sticky it?
Reply
Thanks given by:
#3
If I move it, won't the link change?
Reply
Thanks given by:
#4
(02-10-2016, 12:18 AM)xoft Wrote: If I move it, won't the link change?

Most likely not.
Reply
Thanks given by:
#5
I've read the above several times now, and I'm stumped.

Error -- world is linked to non-existing world: world_end, edit world/world.ini and fix it. Fix ... what?

It's got "EndWorldName=world_end" in world/world.ini. And "World=world_end" in settings.ini. And "OverworldName=world" in world_end/world.ini

The worlds are all accounted for. Or so it seems.
Reply
Thanks given by:
#6
Gone back to the old version for now. Don't know what to do. Removing and regenerating world_end with the previous version didn't help either.
Reply
Thanks given by:
#7
Could you please attach `world/world.ini`, `settings.ini`, and ``world_end/world.ini``?

Edit: Problem fixed. See #3141 for more info.
Reply
Thanks given by: Jammet
#8
The problem is #3137. Cuberite's world checking has been completely broken since that change. I am reverting asap.
Reply
Thanks given by: Jammet
#9
Problem fixed. See #3141 for more info.
Reply
Thanks given by: Jammet
#10
Thanks so much! So that means you don't need the ini files, really, right? Smile
Reply
Thanks given by:




Users browsing this thread: 1 Guest(s)