Workday errors in plain English.

Submit an Error
errors / studio / studio-http-out-badrequestexception-500-set-headers-content-type

Studio HTTP-Out Step Returns 500 BadRequestException After a Set-Headers Step

✓ Verified Workday Studio 2 lookups
The error com.capeclear.mediation.MediationException: application=INT_WD_SAP_Studio_Outbound - Http Out transport id=HttpOut encountered error sending to endpoint Root Cause: BadRequestException : Error code : unknown Response :Error when processing resource com.capeclear.capeconnect.transport.BadRequestException: error from returned HTTP status: 500 Error when processing resource

What it means

When a Set-Headers step runs before an HTTP-Out step, it can silently overwrite or drop the Content-Type header a downstream REST API needs, even though the same payload works fine when tested directly in a tool like Postman. The receiving API then rejects the request as malformed and returns a generic 500 rather than a header-specific error.

Troubleshooting

  1. Compare the exact headers Studio sends against the headers that worked in Postman, don't assume Studio replicates a client's headers automatically, check the HTTP-Out step's actual outbound request in a network trace or debug log if available.
  2. Check the Set-Headers step's Output property, setting it to the wrong message part (for example rootpart when the transport expects a header part) can prevent the header from being applied to the outgoing request at all.
  3. Explicitly set Content-Type in the Set-Headers step rather than relying on a default, some transports don't infer it from the payload body the way a browser or Postman does.
  4. Confirm the receiving API's actual required Content-Type value (application/json vs. a vendor-specific variant), a generic 500 from the far side often hides a more specific header-mismatch complaint.
⚡ Quick fix

Explicitly set the Content-Type header in the Set-Headers step's properties rather than leaving it to default, and confirm the Output property targets the header part, not the message body.

✓ Permanent fix

Add an explicit header-verification step (or log the outbound headers) before any HTTP-Out call added after a Set-Headers step, so a silently dropped or misdirected header is caught in testing rather than surfacing as a generic downstream 500.

Was this helpful?

Related errors