This seems like a good candidate for inlineCallbacks, but may be not for right right now though.

Also, if _decrypt_msg fails, the errback is executed, but if that errback doesn't fail, then add_message_locally. That's why in the bootstrappers I return failure from the default errback, so that the chain goes through the errbacks instead of the next callbacks.