jXchange Error Handling
jXchange Error Handling
In the process of moving information back and forth between a Third-Party Consumer and a Service Provider, it is occasionally necessary to provide notification of Errors arising in messaging protocol and submitted element values. In jXchange, Error handling has been designed into the messaging structure and involves notification through use of codes, categories, descriptions, and options for |Error overrides for non-fatal Errors. There are two main exception types that should be dealt with:
- General SOAP Fault Exceptions
HdrFault
types
SOAP Fault Exceptions are standard faults that can arise from various factors ranging from
communication timeouts to invalid credentials. Both server and client originated faults may
be returned to your code’s service call, depending on what failed and where. Once you are
communicating with jXchange and have passed authentication with valid credentials, you
see the jXchange Fault Type of HdrFault
arise.
A fault of HdrFault Type is thrown as a general SOAP Fault Exception. The HdrFault
structure
appears in the details section. This fault type is returned for any Error against jXchange that
occurs after you are successfully talking to jXchange web services. This Error message can
include anything from an Account Not Found message returned from a Core provider, to an
Access Denied message if you attempt to access an operation that your current credentials
do not allow.
These fault types always originate from our services but are not always a fault of our services.
For example, if you submit a request to our services that is missing a required element, a
HdrFault
is returned stating that the element was not found and which element was missing.
Error Handling
Error notification, like that caused by flawed element values being submitted, is returned within a message’s complex structure. Nested within the FaultRecInfoArray is the fault message complex (FaultMsgRec). The FaultMsgRec complex contains the following simple elements for description of the Error or fault:
ErrCode:
Error Code (Required)ErrCat:
Error Category (Required)ErrDesc:
Error Description (Required)
Properly handling the HdrFault
exception type allows you to interrogate the Error response
object and determine the reasons for a failure. During your initial development with the
jXchange platform, code in a manner that ensures you can catch these faults as early as
possible. Doing so helps you through the early stages of consuming jXchange services and
properly forming requests.
For example, as you learn how to form an Account Inquiry properly to our service, if you are missing items or placing invalid content in an element, the system can usually tell you what is wrong.
Message Elements
Use the following message elements for Error handing in jXchange.
</FaultHdr>
<FaultRecInfoArray>
<FaultMsgRec>
<ErrCode>500019</ErrCode>
<ErrCat>Fault</ErrCat>
<ErrDesc>The CIF number for from account and to account are different</ErrDesc>
<ErrElem>AcctIdFrom.FromAcctId</ErrElem>
<ErrElemVal>10262021002</ErrElemVal>
<ErrLoc>JHXFERADD</ErrLoc>
</FaultMsgRec>
</FaultRecInfoArray>
ErrCode:
Error Code (Required) - Whole, unique, system-wide integer created by the Service Provider to specify a specific message.ErrCat:
Error Category (Required) - One of four string identifiers created to classify the fault. Canonical values include:- Warning: Successful transmission of requested response transmission, but information must be returned to the customer describing under what condition the successful response was able to be created.
- Error: Failure condition that cannot be overridden and must be corrected before processing can be completed.
- Fault: Failure condition that can be overridden.
- Override: Specific Warning notifying the customer that the fault has been overridden.
- FaultLookup: Fault where the element that is causing the fault can be sent to a service for a listing of the possible values.
Important: In the Error Message Response, the Service Provider is required to use Error elements listed in the XSD for use with jXchange. jXchange, by contract, is not required to translate Service Provider elements or values.
Important: If the ErrOvrRd element contains a maximum number of nines (9999999 value for a seven-digit integer), the Service Provider is notified that all faults should be overridden, if possible.
Responding to Category Type: Fault
In a standard message flow involving Errors with an ErrCat value of Fault responses, the message flow begins with a standard request message from the Third-Party Consumer to the Jack Henry bank’s Service Provider.
The condition is created by an element of the request message containing an incomplete or invalid value, which prevents the Service Provider from completing the requested action.
In response, the Service Provider returns an Error message to the consumer with a code,
category, and description corresponding to the severity of the Error fault.
Once an Error message has been returned to the consumer, the consumer can return an
override request to the Service Provider. The override request is identical to the primary
request for service, in addition to an ErrOvrRd
element containing the Error codes that the
consumer requests the Service Provider to overlook. The Error codes listed for override must
contain only fault values that can be overridden. Error values only result in a fatal Error being
issued for the second request with override.
If the second request is issued with an override value that is allowed to be overridden, the Service Provider accepts the second request, ignores the Error condition designated in the primary response, and honors the service request.
<ErrOvrRdInfoArray>
<ErrOvrRd>
<ErrCode>500019</ErrCode>
</ErrOvrRd>
</ErrOvrRdInfoArray>
jXchange and iAdapter
iAdapter exists as an additional communication layer between the jXchange environment and the SilverLake and CIF 20/20 cores. To allow for better troubleshooting and Error handling the iAdapter provides a standardized set of Error messages when issues occur. Below is a reference lookup to allow a consumer to review and plan for these Errors.
iAdapter Error Codes
iAdapter Error Code | Error Type | Error Description |
---|---|---|
9900000 | Error | Socket Server Error: Unable to receive data off socket |
9900001 | Error | Socket Server Error: No data received off socket |
9900002 | Error | Socket Server Authentication Failed: Invalid Institution Id |
9900003 | Error | Socket Server Authentication Failed: Invalid Port Key |
9900102 | Error | The iAdapter Service did not return a valid response |
9900206 | Error | Error occurred building iAdapter Returned Messages |
9900207 | Error | Error occurred building iAdapter Returned Messages |
9900350 | Error | Unmonitored Error occurred with Provider Request Procedure |
9900351 | Error | Requested Name Space not found |
9900352 | Error | Requested Root Element not found in Operation Master File |
9900353 | Error | Requested Version not found |
9900400 | Error | Requested Host Operation not available at this time |
9900401 | Error | Unmonitored Error occurred retrieving mapping information |
9900450 | Error | Unmonitored Error occurred with the iAdapter Consumer Service |
9900451 | Error | Error occurred parsing the URL |
9900455 | Error | Error occurred building the HTTP Header |
9900475 | Error | Web Service information not found for requested Operation |
9900511 | Error | Unmonitored Error occurred building SOAP XML Document |
9900560 | Error | Unknown Error Initiating Web Service |
9900565 | Error | Error Establishing Client Session with Web Server |
9900566 | Error | Error Sending HTTP Header to Web Service |
9900567 | Error | Did Not Receive HTTP continue from Web Service |
9900568 | Error | Error Sending Request Document to Web Service |
9900569 | Error | Error Receiving Response Document From Web Service |
9900570 | Error | HTTP |
9900575 | Error | The Web Service did not return valid Messages or Results |
9900910 | Warning | Aggregate Procedure not available for current provider |
9900916 | Error | Error occurred building Provider Messages Response |
9900917 | Error | Error occurred building Provider Fault Response |
9901001 | Error | Unmonitored |
9901100 | Error | Requested Institution Id not found |
9901101 | Error | Unmonitored Error occurred running iAdapter Transformation Startup |
9901115 | Error | Library List not set for requested Institution Id |
9901116 | Error | Error setting Library List for requested Institution Id |
9901130 | Error | Error initializing the XML ToolKit |
9901818 | Error | Unmonitored Error occurred with iAdapter Built-in-Command |
9901901 | Error | Unmonitored Error occurred in the Provider Procedure |
9901902 | Error | Unable to activate provider procedure |
9901920 | Error | Attempt to exceed the maximum number of allowed Provider Procedures |
9901921 | Error | Unmonitored Error occurred running a Provider Procedure |
9901923 | Error | Error occurred reclaiming Provider Procedure response allocation |
9901924 | Error | Error occurred reclaiming Provider Procedure messages allocation |
9901925 | Error | Unmonitored Error occurred reclaiming Provider Procedure allocation |
9902100 | Error | Attempt to exceed maximum number of cached Operations |
9902101 | Error | Unmonitored Error occurred caching an Operation |
9902105 | Error | Unmonitored Error occurred with caching initial service data |
9902120 | Error | No JXVERSION records found |
9902121 | Error | Attempt to exceed maximum number of JXVERSION records |
9902122 | Error | Error occurred retrieving JXVERSION record information |
9902123 | Error | Unmonitored Error occurred building JXVERSION cache |
9902130 | Error | No JXNAMESPC records found |
9902131 | Error | Attempt to exceed maximum number of JXNAMESPC records |
9902132 | Error | Error occurred retrieving JXNAMESPC record information |
9902133 | Error | Unmonitored Error occurred building JXNAMESPC cache |
9902140 | Error | No Root Element mapping found |
9902141 | Error | Attempt to exceed maximum number of Root Element Mappings |
9902142 | Error | Error occurred retrieving Root Element Mapping records |
9902143 | Error | Unmonitored Error occurred building Root Element cache |
9902151 | Error | Attempt to exceed maximum number of JXMAPPER records |
9902152 | Error | Error occurred retrieving JXMAPPER record information |
9902153 | Error | Unmonitored Error occurred building JXMAPPER cache |
9902162 | Error | Error occurred retrieving JXMAST record information |
9902163 | Error | Unmonitored Error occurred building JXMAST Operation cache |
9902171 | Error | Attempt to exceed maximum number of JXWEBSERV records per Operation |
9902172 | Error | Error occurred retrieving JXWEBSERV record information |
9902173 | Error | Unmonitored Error occurred building JXWEBSERV Operation cache |
9902181 | Error | Attempt to exceed maximum number of JXOPER Application records per Operation |
9902182 | Error | Error occurred retrieving JXOPER record information |
9902183 | Error | Unmonitored Error occurred building JXOPER Operation cache |
9902191 | Error | Attempt to exceed maximum number of JXKEYS records per Operation |
9902192 | Error | Error occurred retrieving JXKEYS record information |
9902193 | Error | Unmonitored Error occurred building JXKEYS JXXML Operation cache |
9902195 | Error | Attempt to exceed maximum number of JXXML records per Operation per FileKey |
9902196 | Error | Error occurred retrieving JXXML record information |
9903101 | Error | Unmonitored Error occurred with XML Document Build procedure |
9903111 | Error | Unmonitored Error occurred processing requested Stream File |
9903115 | Error | Error occurred with the requested starting XPath |
903121 | Error | Unmonitored |
9903125 | Error | Error occurred building node array for requested XPath information |
9904101 | Error | Unmonitored Error occurred with XML Document Parse procedure |
9904105 | Error | Attempt to exceed maximum Stream File size |
9904125 | Error | Error occurred building node array for requested XPath information |
9904214 | Error | IFS Field Type must contain a valid file name as a Default Value |
9907300 | Error | Error occurred creating the XML Parsing Document from request |
9907301 | Error | Unmonitored |
9907500 | Error | Root Element may not be blank creating XML Build Document |
9907501 | Error | Unmonitored |
9907505 | Error | Error occurred creating XML Build Document |
9907601 | Error | Unmonitored |
9907603 | Error | Unmonitored |
9920001 | Error | Error occurred mapping the element’s value |
9920011 | Error | Unmonitored |
9920012 | Error | Unmonitored |
9920013 | Error | Unmonitored |
9920014 | Error | Unmonitored |
9920020 | Error | Required element not sent with request |
9920030 | Error | Error converting Field Value to its mapped Canonical Value |
9920031 | Error | Mapping for Canonical Value not found for required Field Value |
9920032 | Warning | Mapping for Canonical Value not found for optional Field Value |
9920035 | Error | Error translating required Field Value to its Element Tag Name |
9920036 | Error | Tag Name translation not found for required Field Value |
9920037 | Warning | Tag Name translation not found for optional Field Value |
9920040 | Error | The length of the element’s value is greater than maximum allowed |
9920041 | Error | Unmonitored Error occurred setting Character Value |
9920042 | Error | The number of decimal places is invalid |
9920043 | Warning | The element’s value is greater than the provider allows. Element was truncated. |
9920045 | Error | Error with Boolean Type conversion |
9920046 | Error | Error with Boolean Type conversion |
9920047 | Error | The numeric value is greater than maximum allowed |
9920048 | Error | Value cannot be less than zero |
9920050 | Error | Numeric value is invalid |
9920051 | Error | Unmonitored |
9920055 | Error | Date value is invalid |
9920056 | Error | Date value is invalid |
9920057 | Error | Unmonitored Error occurred setting Date Data Type |
9920065 | Error | Time value is invalid |
9920066 | Error | Time value is invalid |
9920067 | Error | Unmonitored Error occurred setting Time Data Type |
9920075 | Warning | Provider Field contains invalid data and can not be returned |
9920076 | Error | Required Provider Field contains invalid data and can not be returned |
9920117 | Error | Application element is invalid for request |
9920118 | Error | Selection Criteria is invalid for request |
9920161 | Error | Error setting Provider Value |
9920201 | Error | Unknown Error retrieving element value from XML document |
9920202 | Error | Unknown Error retrieving element value from XML document |
9920203 | Error | Node value exceeded maximum data size |
9920210 | Error | Array has too many elements to map to provider |
9920211 | Error | Unknown Error building XML element value |
9920215 | Error | Array’s element length is greater than maximum allowed |
9920220 | Warning | Number of Array Elements Found greater than allowed by Provider |
9920500 | Error | The Application/Selection information not available for requested message |
9920501 | Error | Error retrieving Application/Selection Information |
9920600 | Error | Field mapping not found for requested File Key |
9920610 | Error | Error retrieving JXTAGS store for requested file |
9920622 | Error | Error with Field Mappings, Provider Reference File has changed |
9920623 | Error | Unable to locate provider reference file…may be missing or not authorized |
9920624 | Warning | Provider reference file has changed. |
9920651 | Error | Error building XML element |
9920994 | Warning | Element sent with request was ignored |
9920995 | Error | Invalid Element sent with request |
920999 | Error | Element Value exceeds maximum size |
9930001 | Error | Requested Institution Id not found |
9930005 | Error | An Error occurred allocating a record of an opened Service File |
9930011 | Error | An unknown |
9930013 | Error | An unknown Error occurred validating input data |
9930014 | Error | An unknown Error occurred setting default values |
9930022 | Error | A Non-Blank value is required for the associated field(s) |
9930025 | Error | The requested operation is not found |
9930045 | Error | An Error occurred opening a Service File |
9930049 | Warning | No Records Match Selection Criteria |
9930201 | Error | An Error occurred building field list for requested operation |
9930210 | Error | Error occurred parsing Field Key value |
9930211 | Error | Requested Field Key does not exist |
9930214 | Error | Requested Key Field information not valid for request |
9930215 | Error | Record already exists |
930216 | Error | Error occurred Deleting Record |
9930217 | Error | Error occurred Updating Record |
9930218 | Error | Error occurring Writing Record |
9930233 | Error | Value is not valid for associated field |
9930309 | Error | Error building Port Information for requested institution |
9930331 | Error | User not enrolled with any Provider |
9930333 | Error | Error occurred validating User Profile |
9940100 | Error | Authentication failure. Unable to validate user credentials. |
9940110 | Warning | Not enough information to generate AliasSecretKey |
9970501 | Error | Unable to Set Client Port |
9970505 | Error | Error Building Client Request Data |
9970510 | Error | Error Connecting to Server Job |
9970515 | Error | Error Sending Data to Server Job |
9970520 | Error | Error Receiving Data from Server Job |
9970525 | Error | Error Parsing Response Data from Server Job |
9980001 | Error | Error with IFS File Processing |
9980101 | Error | IFS File was not found |
9980110 | Error | Unable to create IFS File |
9980121 | Error | Error occurred decoding BASE64 data |
9980122 | Error | Invalid XMLTYPE for element |
9980123 | Error | Unable to write to IFS File |
9980214 | Error | IFS element must have a default value |
9980515 | Warning | Unable to load data from the IFS into the response. The file is empty. |