Issue: WebSphere Returning "Internal Error" Instead of Actual SOAP Fault
Problem Description
When the SOAPHandler returns a SOAP Fault message, the client receives:
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Internal Error</faultstring>
<detail/>
</soapenv:Fault>
instead of the expected detailed fault such as:
<faultstring>ORA-01031: insufficient privileges</faultstring>
WebSphere logs show:
E org.apache.axis2.engine.AxisEngine receive An error was detected during JAXWS processing
org.apache.axis2.AxisFault: An error was detected during JAXWS processing
at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:208)
Root Causes
1️⃣ Fault Unification Feature (Default WebSphere Behavior)
WebSphere masks all SOAP fault messages by default (webservices.unify.faults = true), replacing custom faults with a generic "Internal Error".
2️⃣ SOAP Version Mismatch (Content-Type Header)
If the outbound or custom response is using SOAP 1.2 (Content-Type: application/soap+xml)
but the WebSphere endpoint expects SOAP 1.1 (Content-Type: text/xml),
Axis2 cannot parse the message and raises the same "Internal Error".
This often happens when:
The handler or external system manually sets SOAP XML with the wrong namespace or header.
A proxy or middleware modifies the Content-Type header.
Solution
✅ Fix 1 - Disable Fault Unification
Go to:
Servers → Server Types → WebSphere application servers → Application Servers → MXServer → Process Definition → Java Virtual Machine → Custom Properties
Create a new property:
Name: webservices.unify.faults
Value: false
Save to master configuration
Restart the server
In a cluster environment, apply this to all members.
✅ Fix 2 - Ensure Correct SOAP Version / Content-Type
Check your outgoing or handler-generated SOAP response headers:
For SOAP 1.1, set:
Content-Type: text/xml; charset=utf-8
For SOAP 1.2, set:
Content-Type: application/soap+xml; charset=utf-8
If your WSDL uses:
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
→ You must use SOAP 1.1 (text/xml).
If your WSDL uses:
<soap12:binding style="document" transport="http://www.w3.org/2003/05/soap/bindings/HTTP/"/>
→ Then SOAP 1.2 (application/soap+xml) is required
#Administration#Analytics#Architecture#Assets#CivilInfrastructure#Customizations#EndUser#EverythingMaximo#HSE/OilandGas#Infrastructure#Integrations#Inventory#IoT#LifeScience/Calibration#Linear#MaximoApplicationSuite#MaximoForAviation#MaximoUserGroups#Mobility#Nuclear#Procurement#Reporting#Scheduling#Security#ServiceProvider#Spatial#Transportation#Utilities#WorkCenters#WorkManagement#MaximoVisualInspection#Predict#Monitor#Health#Assist#Safety------------------------------
Munikrishnan Raji
comm-it
------------------------------