fix(coordinator): stop masking 501 as an internal error
Unimplemented endpoints answered {"error":"internal error"} because the
detail-hiding branch covered everything >= 500, and 501 falls in that range.
That is actively misleading: it sent one debugging session looking for a
database fault when the endpoint simply had no implementation yet.
501 now says "not implemented". It leaks nothing — the client already knows the
status code — while genuine 5xx responses keep hiding their details behind a
request id.
This commit is contained in:
@@ -44,6 +44,14 @@ func (s *Server) writeError(w http.ResponseWriter, r *http.Request, err error) {
|
||||
status = http.StatusNotImplemented
|
||||
}
|
||||
|
||||
// 501 says "this endpoint has no implementation yet" — that leaks nothing and
|
||||
// is far more useful than a generic failure, which sent one debugging session
|
||||
// hunting a database problem that did not exist.
|
||||
if status == http.StatusNotImplemented {
|
||||
writeJSON(w, status, errorResponse{Error: "not implemented", RequestID: reqID})
|
||||
return
|
||||
}
|
||||
|
||||
if status >= 500 {
|
||||
// Never echo an internal error: it can carry table names, query
|
||||
// fragments, and values. The request ID is the bridge to the logs.
|
||||
|
||||
Reference in New Issue
Block a user