Yes, another possibility is a typo that still has valid JSON. Could you try backing up your current config.json then trying to run with the default config.json that comes with the tarball and see if it works?
Then you can add back your config.json settings and see if you can find a typo that's causing the failure.
Btw, the intended effect is to output an error message that gives more info on what went wrong, but there's a bug in 3.1 where that message isn't coming out. Fixed for 3.2 already.