WCF client consuming a SOAP service from third party (Java implementation). WSDL generated proxy via add service reference. 4.5 Framework.
Message intercepted via AfterReceiveReply, which .ToString() is as follows :-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:v1="http://group.customer.com/contract/vbo/header/v1">
<v1:Destination>
<!--Optional:-->
<v1:CountryCode>USA</v1:CountryCode>
<!--Optional:-->
<v1:LanguageCode>eng</v1:LanguageCode>
<!--Optional:-->
<v1:Operator>customer</v1:Operator>
<!--Optional:-->
<v1:Division>CustomerManagement</v1:Division>
<!--Optional:-->
<v1:System>CRM</v1:System>
<!--Optional:-->
<v1:Timestamp>2015-03-30T09:30:10Z</v1:Timestamp>
</v1:Destination>
<v1:Cache>
<v1:UseCache>yes</v1:UseCache>
<v1:MaxAge>86400000</v1:MaxAge>
<v1:LastModified>2014-05-30T09:30:10Z</v1:LastModified>
</v1:Cache>
<v1:Correlation>
<v1:ConversationID>382978e8-f061-435c-bc7f-1001</v1:ConversationID>
</v1:Correlation>
<v1:Source>
<v1:CountryCode>GB</v1:CountryCode>
<v1:Operator>customer</v1:Operator>
<v1:Division>CustomerManagement</v1:Division>
<v1:System>ccc</v1:System>
<v1:Timestamp>2015-03-30T09:30:10Z</v1:Timestamp>
<v1:Identity>
<v1:Token>[email protected]</v1:Token>
</v1:Identity>
</v1:Source>
<wsa:Action>action_anonymized</wsa:Action>
<wsa:MessageID>uuid:2b97effe-f997-4424-b996-436067bf515c</wsa:MessageID>
<wsa:RelatesTo>uuid:e6dd9c95-53e7-4a5a-8361-c233f494a788</wsa:RelatesTo>
<To xmlns="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/anonymous</To>
</soap:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns0:Fault xmlns:ns1="http://www.w3.org/2003/05/soap-envelope" xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/">
<faultcode>OSB-101</faultcode>
<faultstring>OSB ERROR</faultstring>
<detail>
<ns0:Fault xmlns:ns0="http://group.customer.com/contract/vfo/fault/v1" xmlns:ns2="http://group.customer.com/contract/vho/header/v1" xmlns:ns3="http://group.customer.com/schema/common/v1" xmlns:ns6="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns7="http://www.w3.org/2005/08/addressing">
<ns6:Timestamp>2017-03-09T08:32:28.788Z</ns6:Timestamp>
<ns6:ErrorCode>500</ns6:ErrorCode>
<ns0:Name />
<ns0:Severity>Critical</ns0:Severity>
<ns0:Category>Technical</ns0:Category>
<ns0:ReasonCode>ReasonCode</ns0:ReasonCode>
<ns0:Message>The Contact ID [666888777] with Contact Login [null] doesnot exist in the CIAM system.</ns0:Message>
</ns0:Fault>
</detail>
</ns0:Fault>
</soapenv:Body>
</s:Body>
</soapenv:Envelope>
Although I can intercept this and raise (edit:throw) an exception, i would like to figure out why this is not being raised normally, i.e the Message.isFault is false for this response, whereas others that 'look' identical for other service fault responses do have the .isFault true and FaultExeception is caught. I checked the existance of the service/method for the [FaultContractAttribute] :-
[System.ServiceModel.FaultContractAttribute(typeof(CSUAccount.FaultType), Action="action_anonymised", Name="Fault", Namespace="http://group.customer.com/contract/vfo/fault/v1")]
This was a provider issue, the server was not setting this response as a fault. I have no knowledge of what the server issue was, apart from the provider telling me that it was 'fixed'