﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	launchpad_bug
2101	improve error messages from failed uploads	zooko	daira	"The error message when an upload fails is a ""wall of text"". It is hard to read. It looks like this:


   [Failure instance: Traceback: <class 'allmydata.interfaces.!UploadUnhappinessError'>: server selection failed for <Tahoe2ServerSelector for upload dglev>: shares could be placed or found on only 0 server(s). We were asked to place shares on at least 4 server(s) such that any 3 of them have enough shares to recover the file. (placed 0 shares out of 10 total (10 homeless), want to place shares on at least 4 servers such that any 3 of them have enough shares to recover the file, sent 5 queries to 5 servers, 5 queries asked about existing shares (of which 0 failed due to an error), 0 queries placed some shares, 0 placed none (of which 0 placed none due to the server being full and 0 placed none due to an error))

Daira pointed out that even though the current error message is too long, it still lacks the most important information that you might want to use in your response to this error, which is the identities of which servers failed and which succeeded.

A possible improvement to this would be to return a data structure instead of a string, similar to the [source:trunk/src/allmydata/check_results.py?annotate=blame&rev=188c7fecf5d2e62d8dcfbff0791fe1125def971b#L7 CheckResults].

There is probably a related data structure already being produced and displayed over on the ""Recent Uploads and Downloads"" page for the failed upload."	defect	new	normal	soon	code-peerselection	1.10.0		upload error servers-of-happiness transparency		
