Problem
Sending an empty JSON body {} to the quote endpoint returns
a plain text error message instead of structured JSON.
Actual response:
Status: 422 Unprocessable Entity (WebDAV) (RFC 4918)
Content-Type: text/plain; charset=utf-8
Body: Failed to deserialize the JSON body into the target
type: missing field from at line 1 column 2
Impact
Low — does not block core functionality but causes SDK
clients and integrators to fail when parsing error responses
as they expect JSON on all responses from this endpoint.
To reproduce
- Send POST request to https://api.cow.fi/sepolia/api/v1/quote
- Set header: Content-Type: application/json
- Set body: {}
- Observe plain text 422 response instead of structured JSON
Expected behaviour
Status: 422
Content-Type: application/json
Body:
{
"errorType": "...",
"description": "..."
}
Screenshots/logs
See attached Postman screenshot showing the plain text
422 response for empty body request.

services version/commit hash and environment
Version: v2.362.3-dirty
Environment: production (https://api.cow.fi/sepolia)
Additional context
The plain text response appears to be Axum's default
JsonRejection behaviour which is not overridden here.
Reference: https://docs.rs/axum/latest/axum/extract/index.html
Problem
Sending an empty JSON body
{}to the quote endpoint returnsa plain text error message instead of structured JSON.
Actual response:
Status: 422 Unprocessable Entity (WebDAV) (RFC 4918)
Content-Type: text/plain; charset=utf-8
Body: Failed to deserialize the JSON body into the target
type: missing field
fromat line 1 column 2Impact
Low — does not block core functionality but causes SDK
clients and integrators to fail when parsing error responses
as they expect JSON on all responses from this endpoint.
To reproduce
Expected behaviour
Status: 422
Content-Type: application/json
Body:
{
"errorType": "...",
"description": "..."
}
Screenshots/logs
See attached Postman screenshot showing the plain text

422 response for empty body request.
services version/commit hash and environment
Version: v2.362.3-dirty
Environment: production (https://api.cow.fi/sepolia)
Additional context
The plain text response appears to be Axum's default
JsonRejection behaviour which is not overridden here.
Reference: https://docs.rs/axum/latest/axum/extract/index.html