throw exception on invalid message recieved

I found it really confusing that invalid JSON was simply not working without giving me any error messages, I suspect API users would also find this hard.

This change means that an exception is thrown and combined with the Exception listener, gives the user a helpful response back and a clear indication that the request has failed

Cheers

Joseph