id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,launchpad_bug 1993,Abuse of HTTP status 410 Gone,kpreid,,"!NotEnoughSharesError, !NoSharesError, and !UnrecoverableFileError, at least, are being reported using HTTP status code 410 Gone, which is a severe misuse of the code, as 410 means that the resource is '''known to be''' forevermore unavailable. Per RFC 2616 section 10.4.11: The requested resource is no longer available at the server and no forwarding address is known. This condition is expected to be considered permanent. Clients with link editing capabilities SHOULD delete references to the Request-URI after user approval. If the server does not know, or has no facility to determine, whether or not the condition is permanent, the status code 404 (Not Found) SHOULD be used instead. All of these errors indicate that the gateway is ''currently'' unable to fulfill the request (as any of them could result from temporary partition in the grid), not permanent deletion. 410 would be appropriate if, for example, a mutable file were put into a revoked, “no content and cannot be written to further”, state, but not for anything less drastic. (Tahoe is unusual in having even the architectural possibility of having enough confidence to correctly answer 410!) The most appropriate response codes would be, I think, 404 for !NoSharesError (because the grid has no knowledge of the file) and 503 for !NotEnoughSharesError (because the grid knows the file exists but cannot be served). !UnrecoverableFileError appears to be a conflation of the two in the case of mutable files, and so I see no good answer there but to introduce a distinction between the two cases. Regardless, 410 should not be used in any of these cases. I noticed this via https://tahoe-lafs.org/pipermail/tahoe-dev/2013-May/008313.html .",defect,closed,normal,undecided,code-frontend-web,1.10.0,duplicate,http,,