I ended up making two mods with the same class (reusable code idea backfired). While this is clearly my fault (and not the core of the bug report), I still need to explain it because what happened next is a problem in ONI itself.
Mod A has a building with component X. X has data in the savegame.
Mod B includes the same file, hence it also includes class X. The idea is that since class X is internal, it shouldn't matter that it's present in more than one DLL... well it turns out that it is a problem when it comes to savegames.
I remove class X from mod B. Savegames can be loaded again.
Here comes the ONI bug:
Mod A was set to status 3 in mods.json in Documents\Klei\OxygenNotIncluded\mods. This makes the game reload the mod on load. Since mod B updated, but A didn't, the status isn't updated and mod A is stuck with status 3. This means it reloads and gives a notification about it each time the game starts. Manually editing the file to set status to 1 fixes the problem. Steam users have figured out that unsubscribing and subscribing again also fixes the problem, presumably because it removes and then adds the mod in mods.json.
Now I updated mod A in the workshop and it should hopefully revert to status 1 for everybody, but what would have happened if mod A was released by somebody else, meaning updating mod A wouldn't be possible for me even though I caused the issue by adding mod B?
Steps to Reproduce
Read the description.
This issue has not been confirmed by a developer yet.