﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
105	make it easy to distinguish server-side failures/exceptions from client-side	Zooko	Brian Warner	"In Tahoe-LAFS I'm writing code which wraps a call to a remote server in several layers of processing the response from the server.  I would like to reliably distinguish between exceptions/failures caused processing on the client side (e.g. bugs in the client) and exceptions/failures incurred during processing on the server side.

Ideally there would be a single type that I could trap to catch all and only exceptions/failures occurring in the server side application logic, and another type that I could trap to catch all and only exceptions/failures from the foolscap layer, i.e. disconnection, foolscap version incompatibility, bug in the foolscap code, etc..

I *think* that {{{CopiedFailure}}} serves for the former purpose and {{{DeadReferenceError}}} serves for the latter, but the foolscap docs don't state that foolscap offers this as part of its contract, and I'm unsure if those will catch all errors of the type I want to catch or only most such errors.  Also foolscap issue #4 looks a bit scary.

So I think currently I'm going to wrap each call to {{{.callRemote()}}} by immediately attaching an errback which wraps all resulting failures in a wrapper class named {{{ServerFailure}}}."	enhancement	closed	major	0.4.0	usability	0.3.0	fixed		
