A config or data file is empty or corrupt
What it looks like in your log
com.google.gson.JsonParseException: java.io.EOFException: End of input at line 1 column 1
What causes it
Gson could not parse a file the game or a mod tried to load. "End of input at line 1 column 1" is an empty file, which is what a crash or kill mid-write leaves behind; "Expected BEGIN_OBJECT but was STRING" is text where JSON was expected. Whatever depended on that file is running on defaults or not at all.
How to fix it
Find the file (the lines just above each error usually name it), back it up, then delete it so the mod regenerates it, or restore it from a backup. If the same file keeps breaking, the disk filled up or the server is being killed while it saves.
Why it happens
Gson is the JSON parser the game and most mods use. "End of input at line 1 column 1" is an empty file where JSON was expected: the file exists and has nothing in it. That is what a crash, a kill or a full disk leaves behind when it interrupts a save. "Expected BEGIN_OBJECT but was STRING" is a file with text in it that is not JSON, usually a hand edit gone wrong or a config that was overwritten with an error page.
Whatever read the file is now running on defaults, or not at all. Player data, mod configs, whitelist and ops lists, and modpack manifests are the usual victims.
Fix it step by step
- 1Identify the fileThe lines just above the exception usually name it. If not, the mod or subsystem in the stack trace narrows it to its config folder or the world's data folder.
- 2Back it up, then delete itMost files regenerate on start with defaults. A config that regenerates is easy; a player data file that regenerates is a wiped inventory, so prefer restoring that one from a backup.
- 3Restore from backup where it mattersFor playerdata, level.dat or a mod's world data, pull the file from the most recent backup instead of letting it regenerate.
- 4Find out why it was cut shortIf the same file breaks again, the disk filled up or the server is being killed mid-save. The disk-full and exit-code-137 pages cover those.
If that didn't work
If the file looks fine in an editor, check for a byte order mark at the start or smart quotes from a word processor. Both are invisible and both break the parser.
Not sure this is your problem? Paste your log and Roastd will tell you which of these it actually matched, and what else it found.
Check your own log