title: The reason of returning javax.xml.soap.SOAPException: Unable to internalize message from SOAP API
body: <p>I'm working with a system that's integrated with Sabre SOAP API. From my perspective it's just sending a properly formatted XML (<code>Content-Type</code> header is set to <code>text/xml</code>) to an endpoint and in response I get another XML. It works, however occasionally (a fraction of requests we're sending) I get this error:</p>
  
  <p>request:</p>
  
  <pre><code>&lt;soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&gt;
    &lt;soap:Header&gt;
      &lt;ns4:MessageHeader xmlns:ns4="http://www.ebxml.org/namespaces/messageHeader" xmlns:ns5="http://www.w3.org/1999/xlink" xmlns:ns6="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:ns7="http://www.opentravel.org/OTA/2002/11" xmlns:ns8="http://www.w3.org/2000/09/xmldsig#"&gt;
        &lt;ns4:ConversationId&gt;04f446900386013646690cc47a6a2880&lt;/ns4:ConversationId&gt;
        &lt;ns4:From&gt;
          &lt;ns4:PartyId ns4:type="urn:x12.org:IO5:01"&gt;999999&lt;/ns4:PartyId&gt;
          &lt;ns4:Role/&gt;
        &lt;/ns4:From&gt;
        &lt;ns4:To&gt;
          &lt;ns4:PartyId ns4:type="urn:x12.org:IO5:01"&gt;123123&lt;/ns4:PartyId&gt;
          &lt;ns4:Role/&gt;
        &lt;/ns4:To&gt;
        &lt;ns4:CPAId&gt;CPAID&lt;/ns4:CPAId&gt;
        &lt;ns4:Service ns4:type="OTA"/&gt;
        &lt;ns4:Action&gt;PassengerDetailsRQ&lt;/ns4:Action&gt;
      &lt;/ns4:MessageHeader&gt;
      &lt;wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"&gt;
        &lt;wsse:BinarySecurityToken EncodingType="wsse:Base64Binary" valueType="String"&gt;SECURITY_TOKEN_REMOVED&lt;/wsse:BinarySecurityToken&gt;
      &lt;/wsse:Security&gt;
    &lt;/soap:Header&gt;
    &lt;soap:Body&gt;
      &lt;PassengerDetailsRQ HaltOnError="false" version="3.2.0" xmlns="http://services.sabre.com/sp/pd/v3_2"&gt;
        &lt;PostProcessing RedisplayReservation="true"&gt;
          &lt;EndTransactionRQ&gt;
            &lt;EndTransaction Ind="true"/&gt;
            &lt;Source ReceivedFrom="APPNAME"/&gt;
          &lt;/EndTransactionRQ&gt;
        &lt;/PostProcessing&gt;
      &lt;/PassengerDetailsRQ&gt;
    &lt;/soap:Body&gt;
  &lt;/soap:Envelope&gt;
  </code></pre>
  
  <p>response:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"&gt;
    &lt;soap-env:Header/&gt;
    &lt;soap-env:Body&gt;
      &lt;soap-env:Fault&gt;
        &lt;faultcode&gt;soap-env:Client.InvalidEbXmlMessage&lt;/faultcode&gt;
        &lt;faultstring&gt;Unable to internalize message&lt;/faultstring&gt;
        &lt;detail&gt;
          &lt;StackTrace&gt;javax.xml.soap.SOAPException: Unable to internalize message&lt;/StackTrace&gt;
        &lt;/detail&gt;
      &lt;/soap-env:Fault&gt;
    &lt;/soap-env:Body&gt;
  &lt;/soap-env:Envelope&gt;
  </code></pre>
  
  <p>I was looking for a human description of what situation this <code>javax.xml.soap.SOAPException: Unable to internalize message</code> represents but I didn't find anything helpful.</p>
  
  <p>My assumption is that - request has been rejected in the very first layer, so the business layer <strong>has not</strong> processed it, thus I could resend when I get this error. <strong>Am I right?</strong></p>
  
  <p>I browsed requests that failed and they're as the rest of the requests we're sending - so I guess it's not because of invalid body.</p>