﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
198	improve handling of code errors during negotiation	Brian Warner		"While working on #195, I tried to exercise the error-handling code by inserting {{{raise KeyError(""xyz"")}}} into the start of {{{negotiate.evaluateHello}}}, restarting a tahoe node with the modified code, then watch a flogtool-tail of a second node as it reconnected to the now-broken node. (both the second node and the flogtool process were started before breaking negotiate.py).

What I expected to see was a {{{RemoteNegotiationError}}} triggered by the {{{KeyError}}}. Instead, my local monitoring node got a {{{BananaError}}}, as it received the error block ({{{banana-decision-version: 1, error: internal server error see logs}}}) while it was expecting banana data.

I think this means the receiving code is jumping forward to {{{receive_phase=BANANA}}} too early. It might also mean that my code in {{{negotiationFailed}}} that tries to unpack a {{{RemoteNegotiationError}}} is unexercised. That code runs after all the necessary events have been eventual-sent, so it shouldn't break anything if it fails, but it'd be nice to capture remote errors usefully.
"	defect	new	minor	undecided	negotiation	0.6.3			
