Well, the description really explains it. Somehow you've managed to murder your config file. That wasn't necessarily your fault, but either way, it is what it is. If you have a backup of the config file stored somewhere, you can just copy it over, otherwise, you need to delete the empty file.
How did that happen? That's hard to tell. The config file is written when the application shuts down. An empty config file is generated if something crashes the application while it's writing out the config, or after that, before the file handle is closed (lazy writeback, on crash all buffers go *poof*). Maybe, possibly, some plugin crashed on exit. Maybe something else (shut down computer?). Impossible to know.
On a different note, I'm not sure why an empty config file raises an exception. Empty shouldn't functionally be much different from "not present", actually. It should probably show a message so the user who is wondering why the hell suddenly all settings are reset to default knows what's going on, but I guess the application should still be operational?