wo: core
Throw exception when message invalid

This should provide cleaner flow for normal workflow
wo: turn workflow