I-011: HeaderFault vs. Fault

  1. Service A is defined on Provider A and invoked by Requester B.
  2. While processing the request, Provider A detects a problem with the header. Provider A returns a SOAP fault with Reason text.
  3. Later Requester B invokes Service A again. This time the actual service generates a fault (and presumably supplies the falut reason text). For example a Java-based service might throw an Exception to which it passes a string containing information about the fault.

Provider A should, if possible, try to resolve any reason Text elements into the language(s) requested by Requester B. In some cases this may not be possible because the language in question is not available or the design of the error handling subsystem does not allow multiple language resolution of the fault.

In (2) the text is generated directly by the SOAP Provider. In (3) the text is generated within the service (agent) itself. In both cases Provider A should return the message in the language requested by B if possible. It may be forced to return the message provided by Service A, labeled with the local language (or the language of the actual message, if known). Note that these two faults may be in different languages, since they are separately generated.