Demyst error types

Table documenting the errors returned by a Data API along with a description, categorisation and expected HTTP status returned from Demyst

error_typecurrent_messageerror_categorydescriptionhttp_status
blackbelly_communications_link_failureinternal_errorAn internal error has occurred. The Demyst team should be contacted so that it can be resolved.200
blackbelly_query_timeoutBlackbelly Query timed out after 2000, this may mean that inputs were generic or proper indexes were missingtimeoutThe data query took too long to process, for one of several possible reasons.200
blackbelly_table_does_not_existThe queried provider does not exist in this region.internal_errorAn internal error has occurred. The Demyst team should be contacted so that it can be resolved.200
channel_access_deniedpermission_errorThe Demyst team should be contacted to ensure that the user can access the channel used by the request.403
channel_not_foundChannel with ID 1103 not foundchannel_not_foundThe user should verify that they provided the correct channel for their request.404
data_function_errorinternal_errorAn internal error has occurred. The Demyst team should be contacted so that it can be resolved.200
data_function_misses_result_keyinternal_errorAn internal error has occurred. The Demyst team should be contacted to fix a client-specific customisation.200
data_function_response_errorUnexpected response received from DataFunction: data function did not return a result key, in the pipe with id: Some(691)internal_errorNo results were returned from a custom data function. Demyst support should be contacted.200
decoding_errorupstream_structure_errorThe data provider returned an unexpected response. Demyst support should be contacted.422
insufficient_api_key_permissionsThe given apiKey is for test use only. It is only authorized for use with Sample modepermission_errorThe API key provided by the user can only be used for test purposes in sample mode.400
insufficient_channel_permissionsThe organization with id 2 does not have permission to run Channel with id 1052permission_errorThe Demyst team should be contacted to ensure that the user can access the channel used by the request.403
insufficient_credentialsinsufficient_credentialsThe Demyst team should be contacted to fix an access issue with a specific data provider.200
insufficient_inputDid not have sufficient valid input to run.
Given valid inputs:
InputField(email_address,Some(EmailAddress),
"[email protected]"),
InputField(state,Some(State),"QLD"),
InputField(country,Some(Country),"AU"), InputField(post_code,Some(PostCode),"4159"), InputField(last_name,Some(LastName),"Schiffke"),
InputField(ip6,Some(Ip6),
"2001:8003:e122:4800:edac:8c6:c71e:bbd4"), InputField(street,Some(Street),"4 Clive Rd"), InputField(phone,Some(Phone),"+61467558685"), InputField(first_name,Some(FirstName),"Leah"), InputField(city,Some(City),"Birkdale")"
insufficient_inputThe attempted configuration requires specific inputs to execute successfully. Verify that the correct inputs that were provided to the connector.200
invalid_api_keyapiKey 236dfh453756... is invalidpermission_errorThe user's API key is invalid, inactive, or missing a character.400
invalid_credentialsThe request was not authorized, the credentials you provided for this data source are likely invalid.invalid_credentialsThe credentials — provided by either the client or by Demyst — for accessing a specific data provider are incorrect or out of date.200
ip_whitelist_error"Request came from 116.14.20.220, which is not on the IP whitelist for this organization.permission_errorThe request came from an IP address that is not associated with the user's organization. The Demyst team should be contacted to update the IP whitelist.403
logical_input_errorlogical_input_errorThe attempted query requires specific inputs that were not in the correct format.200
missing_provider_grantspermission_errorThe user requested information from a data provider that requires special access privileges. Contact the Demyst team to discuss accessing this provider.403
network_errorupstream_errorA network error has occurred. The Demyst team should be contacted to resolve it.200
no_api_key_givenpermission_errorThe user did not provide the credentials that are necessary to access a specific data provider.403
provider_version_not_foundprovider_version_not_foundThe query attempted to access a data provider that was not recognized. The information in the original query should be checked for errors.400
rate_limit_exceededrate_limit_exceededA data provider has been contacted too frequently in too short a period of time; their rate limit has been exceeded.200
sample_data_not_implementedsample_data_not_implementedThe API attempted to request sample data from a data provider that is not available. Contact Demyst support to discuss implementing sample data for this data provider.200
timeoutTimeout of 5 s exceeded. Cause: -"timeoutThe Demyst team will need to check the response to determine why the default timeout period has been exceeded.200
uncaught_defectinternal_errorAn unexpected error has occurred. The Demyst team should be contacted so that it can be resolved.200
unexpected_batch_record_errorinternal_errorAn unexpected error has occurred. The Demyst team should be contacted so that it can be resolved.200
unexpected_blackbelly_sql_errorinternal_errorAn unexpected error has occurred. The Demyst team should be contacted so that it can be resolved.200
unexpected_data_function_errorData Function Exception: An error occurred
and the request cannot be processed.
(Service: AWSLambda; Status Code: 500;
Error Code: ServiceException Data Function Exception:
Unable to execute HTTP request:
Timeout waiting for connection from the pool,
in the pipe with id: Some(601)
internal_errorThe Demyst team will need to resolve the issue by identifying why the response from the provider has resulted in an error.200
unexpected_provider_errorinternal_errorThe Demyst team will need to resolve the issue by identifying why the response from the provider has resulted in an error.200
unexpected_upstream_http_statusupstream_errorThe Demyst team will need to resolve the issue by identifying why the response from the provider has resulted in an error.200
unexpected_upstream_structureupstream_structure_errorThe Demyst team will need to resolve the issue by identifying why the response from the provider has resulted in an XML/JSON parsing failure.200
upstream_application_errorUnknown Error or... Unknown city: PEACHTREE CORNERS, GAupstream_application_errorEither the requested data provider is down, or it returned an unexpected error. (Similar to upstream_service_unavailable)200
upstream_service_unavailableHTTP status code 503 unexpected || HTTP status code 500 unexpectedupstream_errorEither the requested data provider is down, or it returned an unexpected error. (Similar to upstream_application_error)200

Debugging Data API configuration

Here are typical errors you may encounter while configuring a Data API along with the typical resolution.

waterfall_dependency_error

The user has specified a provider as an input / when condition, but this provider is not part of the providers in the request / saved Data API.

{
  "transaction_id": "bebbe9b8-7a40-4e1e-8cb0-d3c8432617d4",
  "error": {
      "type": "waterfall_dependency_error",
      "message": "Provider experian_business_facts referenced a non-existing provider hosted_experian_cpdb"
  }
}

refine_error

Happens before the providers are executed if a function doesn't exist, or wrong parameters were passed.

{
  "transaction_id": "2a3ca703-cdf3-4f29-a4d4-57b24003a2e6",
  "error": {
      "type": "refine_error",
      "message": "Unknown function 'atis' on Transaction. Did you mean $at?"
  }
}

decoding_error

An incorrect syntax, an unwanted character within the Data API call that won't let the request be evaluated until corrected will be propagated as a decoding_error.

{
  "transaction_id": "1c6b6350-4550-4cd1-a7cd-29055e2a791c",
  "error": {
    "type": "decoding_error",
    "message": "expected \" got '}\n    ...' (line 6, column 9)"
  }
}
{
  "transaction_id": "a9e2f44b-509c-4fc9-aa9e-01bb439c8f96",
  "error": {
    "type": "decoding_error",
    "message": "Not a string value: DownField(providers)"
  }
}
{
  "transaction_id": "ede8349c-d760-455a-9fdd-7997aef0041e",
  "error": {
    "type": "decoding_error",
    "message": ".providers: While parsing connector-attribute-path 'true': connector-attribute path requires a '.'"
  }
}

dependency_error

This error occurs when a provider is set to receive inputs from the output of another provider, but that provider was Skipped.

{
  "transaction_id": "6c48013f-bdee-4ef0-a2e7-5b2e531df15e",
  "output": {
  "PROVIDER_NAME": {
    "error": {
      "type": "dependency_error",
      "message": "Connector 'PROVIDER_NAME' had run state: 'Skipped'"
      }
    }
  }
}