Just to be on the safer side I tried your solution, but it didn't work.
Here is the reason why, if we peruse the error trace, error is isn't
thrown from ChatModel.onSynchronizationChange(). Your solution would
have worked if error was thrown from this method. Had the error been
thrown from this method, we could override it, catch the error and
BINGO, world would have been such a happy place. But error is thrown
from MessageManager.createNode() [see the trace]