mirror of
https://github.com/versity/versitygw.git
synced 2026-09-25 01:14:22 +00:00
The RC control routes returned fiber.Error values for 400, 404, 409, 429, 502, and 503 outcomes, but the production S3 error handler converts ordinary fiber errors into a generic 500 response, so clients observed InternalError for every protocol outcome. The routes now send the final status and S3-style XML body themselves through a shared terminal serializer. S3-aware errors from authentication, authorization, and the object backend keep their status and code. Session-server failures map to protocol error codes: InvalidRdmaRequest, NoSuchRdmaSession, RdmaSessionConflict, RdmaResourceLimit, RdmaTransferFailed, and RdmaServiceUnavailable. Owner mismatch answers the same 404 as an unknown session so a session id is never disclosed across principals. The platform stub keeps its 501 answer and uses the same response shape.