maybe should try/catch the call to transportMessageReceived() and call the completionCallback with an exception if one is catched.