Developer Programs

Learn

Docs
Important notification about upcoming changes to the DMZ environment. Please read.

jXchange Error Handling

Enterprise SOAP API > Getting Started > jXchange Environment > 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.

Example API Error Response
     </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.

Example API Fault Override
      <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 CodeError TypeError Description
9900000ErrorSocket Server Error: Unable to receive data off socket
9900001ErrorSocket Server Error: No data received off socket
9900002ErrorSocket Server Authentication Failed: Invalid Institution Id
9900003ErrorSocket Server Authentication Failed: Invalid Port Key
9900102ErrorThe iAdapter Service did not return a valid response
9900206ErrorError occurred building iAdapter Returned Messages
9900207ErrorError occurred building iAdapter Returned Messages
9900350ErrorUnmonitored Error occurred with Provider Request Procedure
9900351ErrorRequested Name Space not found
9900352ErrorRequested Root Element not found in Operation Master File
9900353ErrorRequested Version not found
9900400ErrorRequested Host Operation not available at this time
9900401ErrorUnmonitored Error occurred retrieving mapping information
9900450ErrorUnmonitored Error occurred with the iAdapter Consumer Service
9900451ErrorError occurred parsing the URL
9900455ErrorError occurred building the HTTP Header
9900475ErrorWeb Service information not found for requested Operation
9900511ErrorUnmonitored Error occurred building SOAP XML Document
9900560ErrorUnknown Error Initiating Web Service
9900565ErrorError Establishing Client Session with Web Server
9900566ErrorError Sending HTTP Header to Web Service
9900567ErrorDid Not Receive HTTP continue from Web Service
9900568ErrorError Sending Request Document to Web Service
9900569ErrorError Receiving Response Document From Web Service
9900570ErrorHTTP
9900575ErrorThe Web Service did not return valid Messages or Results
9900910WarningAggregate Procedure not available for current provider
9900916ErrorError occurred building Provider Messages Response
9900917ErrorError occurred building Provider Fault Response
9901001ErrorUnmonitored
9901100ErrorRequested Institution Id not found
9901101ErrorUnmonitored Error occurred running iAdapter Transformation Startup
9901115ErrorLibrary List not set for requested Institution Id
9901116ErrorError setting Library List for requested Institution Id
9901130ErrorError initializing the XML ToolKit
9901818ErrorUnmonitored Error occurred with iAdapter Built-in-Command
9901901ErrorUnmonitored Error occurred in the Provider Procedure
9901902ErrorUnable to activate provider procedure
9901920ErrorAttempt to exceed the maximum number of allowed Provider Procedures
9901921ErrorUnmonitored Error occurred running a Provider Procedure
9901923ErrorError occurred reclaiming Provider Procedure response allocation
9901924ErrorError occurred reclaiming Provider Procedure messages allocation
9901925ErrorUnmonitored Error occurred reclaiming Provider Procedure allocation
9902100ErrorAttempt to exceed maximum number of cached Operations
9902101ErrorUnmonitored Error occurred caching an Operation
9902105ErrorUnmonitored Error occurred with caching initial service data
9902120ErrorNo JXVERSION records found
9902121ErrorAttempt to exceed maximum number of JXVERSION records
9902122ErrorError occurred retrieving JXVERSION record information
9902123ErrorUnmonitored Error occurred building JXVERSION cache
9902130ErrorNo JXNAMESPC records found
9902131ErrorAttempt to exceed maximum number of JXNAMESPC records
9902132ErrorError occurred retrieving JXNAMESPC record information
9902133ErrorUnmonitored Error occurred building JXNAMESPC cache
9902140ErrorNo Root Element mapping found
9902141ErrorAttempt to exceed maximum number of Root Element Mappings
9902142ErrorError occurred retrieving Root Element Mapping records
9902143ErrorUnmonitored Error occurred building Root Element cache
9902151ErrorAttempt to exceed maximum number of JXMAPPER records
9902152ErrorError occurred retrieving JXMAPPER record information
9902153ErrorUnmonitored Error occurred building JXMAPPER cache
9902162ErrorError occurred retrieving JXMAST record information
9902163ErrorUnmonitored Error occurred building JXMAST Operation cache
9902171ErrorAttempt to exceed maximum number of JXWEBSERV records per Operation
9902172ErrorError occurred retrieving JXWEBSERV record information
9902173ErrorUnmonitored Error occurred building JXWEBSERV Operation cache
9902181ErrorAttempt to exceed maximum number of JXOPER Application records per Operation
9902182ErrorError occurred retrieving JXOPER record information
9902183ErrorUnmonitored Error occurred building JXOPER Operation cache
9902191ErrorAttempt to exceed maximum number of JXKEYS records per Operation
9902192ErrorError occurred retrieving JXKEYS record information
9902193ErrorUnmonitored Error occurred building JXKEYS JXXML Operation cache
9902195ErrorAttempt to exceed maximum number of JXXML records per Operation per FileKey
9902196ErrorError occurred retrieving JXXML record information
9903101ErrorUnmonitored Error occurred with XML Document Build procedure
9903111ErrorUnmonitored Error occurred processing requested Stream File
9903115ErrorError occurred with the requested starting XPath
903121ErrorUnmonitored
9903125ErrorError occurred building node array for requested XPath information
9904101ErrorUnmonitored Error occurred with XML Document Parse procedure
9904105ErrorAttempt to exceed maximum Stream File size
9904125ErrorError occurred building node array for requested XPath information
9904214ErrorIFS Field Type must contain a valid file name as a Default Value
9907300ErrorError occurred creating the XML Parsing Document from request
9907301ErrorUnmonitored
9907500ErrorRoot Element may not be blank creating XML Build Document
9907501ErrorUnmonitored
9907505ErrorError occurred creating XML Build Document
9907601ErrorUnmonitored
9907603ErrorUnmonitored
9920001ErrorError occurred mapping the element’s value
9920011ErrorUnmonitored
9920012ErrorUnmonitored
9920013ErrorUnmonitored
9920014ErrorUnmonitored
9920020ErrorRequired element not sent with request
9920030ErrorError converting Field Value to its mapped Canonical Value
9920031ErrorMapping for Canonical Value not found for required Field Value
9920032WarningMapping for Canonical Value not found for optional Field Value
9920035ErrorError translating required Field Value to its Element Tag Name
9920036ErrorTag Name translation not found for required Field Value
9920037WarningTag Name translation not found for optional Field Value
9920040ErrorThe length of the element’s value is greater than maximum allowed
9920041ErrorUnmonitored Error occurred setting Character Value
9920042ErrorThe number of decimal places is invalid
9920043WarningThe element’s value is greater than the provider allows. Element was truncated.
9920045ErrorError with Boolean Type conversion
9920046ErrorError with Boolean Type conversion
9920047ErrorThe numeric value is greater than maximum allowed
9920048ErrorValue cannot be less than zero
9920050ErrorNumeric value is invalid
9920051ErrorUnmonitored
9920055ErrorDate value is invalid
9920056ErrorDate value is invalid
9920057ErrorUnmonitored Error occurred setting Date Data Type
9920065ErrorTime value is invalid
9920066ErrorTime value is invalid
9920067ErrorUnmonitored Error occurred setting Time Data Type
9920075WarningProvider Field contains invalid data and can not be returned
9920076ErrorRequired Provider Field contains invalid data and can not be returned
9920117ErrorApplication element is invalid for request
9920118ErrorSelection Criteria is invalid for request
9920161ErrorError setting Provider Value
9920201ErrorUnknown Error retrieving element value from XML document
9920202ErrorUnknown Error retrieving element value from XML document
9920203ErrorNode value exceeded maximum data size
9920210ErrorArray has too many elements to map to provider
9920211ErrorUnknown Error building XML element value
9920215ErrorArray’s element length is greater than maximum allowed
9920220WarningNumber of Array Elements Found greater than allowed by Provider
9920500ErrorThe Application/Selection information not available for requested message
9920501ErrorError retrieving Application/Selection Information
9920600ErrorField mapping not found for requested File Key
9920610ErrorError retrieving JXTAGS store for requested file
9920622ErrorError with Field Mappings, Provider Reference File has changed
9920623ErrorUnable to locate provider reference file…may be missing or not authorized
9920624WarningProvider reference file has changed.
9920651ErrorError building XML element
9920994WarningElement sent with request was ignored
9920995ErrorInvalid Element sent with request
920999ErrorElement Value exceeds maximum size
9930001ErrorRequested Institution Id not found
9930005ErrorAn Error occurred allocating a record of an opened Service File
9930011ErrorAn unknown
9930013ErrorAn unknown Error occurred validating input data
9930014ErrorAn unknown Error occurred setting default values
9930022ErrorA Non-Blank value is required for the associated field(s)
9930025ErrorThe requested operation is not found
9930045ErrorAn Error occurred opening a Service File
9930049WarningNo Records Match Selection Criteria
9930201ErrorAn Error occurred building field list for requested operation
9930210ErrorError occurred parsing Field Key value
9930211ErrorRequested Field Key does not exist
9930214ErrorRequested Key Field information not valid for request
9930215ErrorRecord already exists
930216ErrorError occurred Deleting Record
9930217ErrorError occurred Updating Record
9930218ErrorError occurring Writing Record
9930233ErrorValue is not valid for associated field
9930309ErrorError building Port Information for requested institution
9930331ErrorUser not enrolled with any Provider
9930333ErrorError occurred validating User Profile
9940100ErrorAuthentication failure. Unable to validate user credentials.
9940110WarningNot enough information to generate AliasSecretKey
9970501ErrorUnable to Set Client Port
9970505ErrorError Building Client Request Data
9970510ErrorError Connecting to Server Job
9970515ErrorError Sending Data to Server Job
9970520ErrorError Receiving Data from Server Job
9970525ErrorError Parsing Response Data from Server Job
9980001ErrorError with IFS File Processing
9980101ErrorIFS File was not found
9980110ErrorUnable to create IFS File
9980121ErrorError occurred decoding BASE64 data
9980122ErrorInvalid XMLTYPE for element
9980123ErrorUnable to write to IFS File
9980214ErrorIFS element must have a default value
9980515WarningUnable to load data from the IFS into the response. The file is empty.

Have a Question?
Have a how-to question? Seeing a weird error? Get help on StackOverflow.
Register for the Digital Toolkit Meetup where we answer technical Q&A from the audience.
Last updated Mon Jan 1 0001