if there's an exception during negotiation, push it to the main thread