This error is usually not about random XML corruption. It is usually about speaking the wrong SOAP dialect.
The content type application/soap+xml; charset=utf-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8)
In plain terms:
- one side is behaving like SOAP 1.2
- the other side is expecting SOAP 1.1
Why this happens
SOAP 1.1 and SOAP 1.2 differ in both the envelope conventions and the HTTP conventions around them.
- SOAP 1.1 commonly uses
text/xmland a separateSOAPActionheader - SOAP 1.2 commonly uses
application/soap+xmland may include the action in the content type itself
If your client, proxy, or generated binding picks the wrong one, the service may answer in a way your library rejects immediately.
What to check first
- Which binding and port in the WSDL you are actually using
- Whether the service exposes both SOAP 1.1 and SOAP 1.2
- The outgoing
Content-Type - Whether your client library generated the request from the same binding you think it did
This is a classic case where "the endpoint works in SoapUI but not in app code" happens because different tools picked different bindings.
Why teams lose time here
People often debug the body, namespaces, or auth first. Those can matter, but this error is often telling you the failure happened earlier than that. The receiver and sender did not agree on the binding-level protocol.
That is why having a single integration boundary helps. Once the correct SOAP binding is pinned in one place, downstream consumers do not need to keep rediscovering 1.1 vs 1.2 mismatches on their own.