Ask Bill!

Plaid Check errors

Guide to troubleshooting Plaid Check errors

Errors returned by /cra/report/get and /cra/report/create have an error_type of CRA_REPORT_ERROR. Errors returned by the legacy /cra/check_report/* endpoints have an error_type of CHECK_REPORT_ERROR or CONSUMER_REPORT_ERROR. When a code is returned with more than one error_type, its entry describes each.

CONSUMER_REPORT_EXPIRED

Common causes
  • The Check Report has expired as 24 hours have passed since its creation, so it is no longer retrievable.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CONSUMER_REPORT_ERROR",
 "error_code": "CONSUMER_REPORT_EXPIRED",
 "error_message": "",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

CONSUMER_REPORT_NOT_FOUND

Common causes
  • No report has been created for this user.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CONSUMER_REPORT_ERROR",
 "error_code": "CONSUMER_REPORT_NOT_FOUND",
 "error_message": "the consumer report you are trying to pull does not exist. please use Link to reconnect the end user and then fetch the generated report",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

USER_ON_IDENTITY_THEFT_OR_FRAUD_BLOCK

The user has reported fraud or identity theft to Plaid Check.

/cra/report/get and /cra/report/create return this error with an error_type of CRA_REPORT_ERROR. /link/token/create and the legacy /cra/check_report/create endpoint return it with an error_type of CONSUMER_REPORT_ERROR.

Troubleshooting steps
API error response
http code 400
{
 "error_type": "CRA_REPORT_ERROR",
 "error_code": "USER_ON_IDENTITY_THEFT_OR_FRAUD_BLOCK",
 "error_message": "The user is on an identity theft or fraud block. The user can remove this block by submitting a request at https://plaid.com/check/consumer-service-center/",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

USER_ON_SECURITY_FREEZE

The user has placed a security freeze with Plaid Check.

/cra/report/get and /cra/report/create return this error with an error_type of CRA_REPORT_ERROR. /link/token/create and the legacy /cra/check_report/create endpoint return it with an error_type of CONSUMER_REPORT_ERROR.

Troubleshooting steps
API error response
http code 400
{
 "error_type": "CRA_REPORT_ERROR",
 "error_code": "USER_ON_SECURITY_FREEZE",
 "error_message": "The user has a security freeze on their credit file. The user can lift the freeze by submitting a request at https://plaid.com/check/consumer-service-center/",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

DATA_UNAVAILABLE

/cra/report/get returns this error with an error_type of CRA_REPORT_ERROR. For CLIENT_USER reports, its causes field contains an ITEM_MISSING_DATA error for each affected Item. The legacy /cra/check_report/* endpoints return it with an error_type of CHECK_REPORT_ERROR.

Common causes
  • Plaid Check failed to retrieve data from the user's financial institutions to generate Check Report product data.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CHECK_REPORT_ERROR",
 "error_code": "DATA_UNAVAILABLE",
 "error_message": "The Check Report you are trying to pull does not have sufficient transactions data to generate a report.",
 "display_message": null,
 "causes": [
  {
   "display_message": null,
   "error_code": "ITEM_LOGIN_REQUIRED",
   "error_message": "The login details of this item have changed (credentials, MFA, or required user action) and a user login is required to update this information. use Link's update mode to restore the item to a good state",
   "error_type": "ITEM_ERROR",
   "item_id": "pZ942ZA0npFEa0BgLCV9DAQv3Zq8ErIZhc81F"
  }
 ],
 "request_id": "HNTDNrA8F1shFEW"
}

PRODUCT_NOT_READY

Note that this error should not be confused with the PRODUCT_NOT_READY error of type ITEM_ERROR, which has different causes.

Common causes
  • /cra/check_report/.../get was called before report generation completed.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CONSUMER_REPORT_ERROR",
 "error_code": "PRODUCT_NOT_READY",
 "error_message": "The consumer report you are trying to pull is not ready. Please wait for a CHECK_REPORT_READY webhook to fetch data",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

INSTITUTION_TRANSACTION_HISTORY_NOT_SUPPORTED

Common causes
  • The user's financial institution does not support the length of transaction history you require
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CHECK_REPORT_ERROR",
 "error_code": "INSTITUTION_TRANSACTION_HISTORY_NOT_SUPPORTED",
 "error_message": "The user’s bank does not support the transactions range you require. Lowering the days_required may result in success.",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

INSUFFICIENT_TRANSACTION_DATA

Common causes
  • The user does not have sufficient transactions data to generate income insights, partner insights, or cashflow insights. The error_message will provide more detail on what data is missing.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CHECK_REPORT_ERROR",
 "error_code": "INSUFFICIENT_TRANSACTION_DATA",
 "error_message": "",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

NO_ACCOUNTS

Common causes
  • The user does not have the correct accounts linked to generate income insights. The error_message will provide more detail on what data is missing.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CHECK_REPORT_ERROR",
 "error_code": "NO_ACCOUNTS",
 "error_message": "No depository accounts were found for this user",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

INCOME_INSIGHTS_DELETED

The Income Insights report requested for the PDF has been deleted.
Common causes
  • The Income Insights report requested for the Check Report has been deleted and can no longer be included in the generated PDF.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CHECK_REPORT_ERROR",
 "error_code": "INCOME_INSIGHTS_DELETED",
 "error_message": "the income insights report you are trying to retrieve has been deleted",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

NETWORK_CONSENT_REQUIRED

Common causes
  • The user did not provide consent in link to share Plaid network data.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CHECK_REPORT_ERROR",
 "error_code": "NETWORK_CONSENT_REQUIRED",
 "error_message": "User has not provided consent to share network data",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

DATA_QUALITY_CHECK_FAILED

Common causes
  • The extracted data from the financial institution showed signs of poor data quality, preventing the generation of an accurate report.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CHECK_REPORT_ERROR",
 "error_code": "DATA_QUALITY_CHECK_FAILED",
 "error_message": "Bank provided inconsistent transaction history data that has a high chance of error. The bank will need to resolve issues for product data to be generated.",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

PRODUCT_NOT_REQUESTED

The product was not requested when the Check Report was created.

/cra/report/get returns this error with an error_type of CRA_REPORT_ERROR. The legacy /cra/check_report/*/get endpoints return it with an error_type of CONSUMER_REPORT_ERROR.

Common causes
  • /cra/check_report/*/get was called for a product that was not included in the products array when the report was created via /link/token/create or /cra/check_report/create.
  • /cra/report/get was called with a report_id and a product, or product version, that was not requested when that report was created.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CONSUMER_REPORT_ERROR",
 "error_code": "PRODUCT_NOT_REQUESTED",
 "error_message": "The requested product type was not requested for this consumer report. Call /cra/check_report/create with the product in `products`.",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

NO_MATCHING_USER

Plaid Check could not find a consumer profile for the user.

Returned by /cra/report/get and /cra/report/create when scope is PLAID_NETWORK. If the user has no identity, these endpoints return INVALID_USER_IDENTITY instead.

Common causes
  • The identity on the user does not match a Plaid Check consumer profile.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CRA_REPORT_ERROR",
 "error_code": "NO_MATCHING_USER",
 "error_message": "No matching user was found for the provided identity. Send the user through a CRA link flow. For additional information refer to our docs: https://plaid.com/docs/",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

NO_ELIGIBLE_ITEMS_ON_PROFILE

The user's Plaid Check consumer profile has no Items that can be used for a report.

Returned by /cra/report/get and /cra/report/create when scope is PLAID_NETWORK.

Common causes
  • Plaid Check matched the user to a consumer profile, but none of the profile's Items are eligible for a Plaid Network report.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CRA_REPORT_ERROR",
 "error_code": "NO_ELIGIBLE_ITEMS_ON_PROFILE",
 "error_message": "No eligible items are available to generate a report for this user. Send the user through a CRA Link flow to repair an existing item connection, then retry after a new report has been generated.",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

INVALID_USER_IDENTITY

The user's identity is missing or incomplete.

Returned by /cra/report/get and /cra/report/create.

Common causes
  • The user has no identity.
  • The user's identity is missing one or more fields that Plaid Check requires.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CRA_REPORT_ERROR",
 "error_code": "INVALID_USER_IDENTITY",
 "error_message": "User identity is invalid. You can add an identity to an existing user by calling /user/update and making sure all the CRA required fields are set. For a list of required fields refer to our docs: https://plaid.com/docs/",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

DECISION_STAGE_NOT_ENABLED

Your account is not enabled for the requested decision_stage on one of the requested products.

Returned by /cra/report/get, /cra/report/create, and /link/token/create when called with cra_report_parameter.

Common causes
  • The requested decision_stage has not been enabled for one of the requested products. The error_message names the product and decision stage.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CRA_REPORT_ERROR",
 "error_code": "DECISION_STAGE_NOT_ENABLED",
 "error_message": "decision_stage \"DECISIONING\" is not enabled for product \"cra_income_insights\" for this client. Contact your Plaid account manager to enable it.",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

REPORT_NOT_READY

The report identified by report_id is still being generated.

Returned by /cra/report/get.

Common causes
  • /cra/report/get was called with a report_id before Plaid Check finished generating the report.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CRA_REPORT_ERROR",
 "error_code": "REPORT_NOT_READY",
 "error_message": "The report is still being generated. Retry after the CRA_REPORT_READY webhook fires.",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

REPORT_NOT_FOUND

No report matching the request is available for the user.

Returned by /cra/report/get.

Common causes
  • /cra/report/get was called with scope set to PLAID_NETWORK and no report_id, and no current Plaid Network report is available for the user.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CRA_REPORT_ERROR",
 "error_code": "REPORT_NOT_FOUND",
 "error_message": "No report matching the request is currently available for this user. Retry after a new report has been generated.",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

REPORT_EXPIRED

The report identified by report_id has expired.

Returned by /cra/report/get.

Common causes
  • More than 24 hours have passed since the report was created, so it can no longer be retrieved.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CRA_REPORT_ERROR",
 "error_code": "REPORT_EXPIRED",
 "error_message": "The report identified by report_id has expired. Generate a new report and retrieve it instead.",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

PRODUCT_GENERATION_FAILED

Plaid Check could not generate the requested products.

Returned by /cra/report/get when every requested product failed to generate. When only some products fail, the call succeeds and this error appears in the errors array of each failed product instead. A failed cra_lend_score product returns a more specific code when one applies, such as INSUFFICIENT_TRANSACTION_HISTORY_30D or BALANCE_UNAVAILABLE. For details, see LendScore.

Common causes
  • The user's data does not meet a product's requirements, such as the amount of transaction history it needs.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CRA_REPORT_ERROR",
 "error_code": "PRODUCT_GENERATION_FAILED",
 "error_message": "The requested product could not be generated for this user. For additional information refer to our docs: https://plaid.com/docs/",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}

ITEM_MISSING_DATA

An Item on the report is missing the transaction data needed to generate the report.

Returned by /cra/report/get in the causes field of a DATA_UNAVAILABLE error, with one entry per affected Item. Only CLIENT_USER reports list causes.

Common causes
  • Plaid Check could not retrieve the Item's transaction data when it generated the report.
Troubleshooting steps
API error response
http code 400
{
 "error_type": "CRA_REPORT_ERROR",
 "error_code": "DATA_UNAVAILABLE",
 "error_message": "The report does not have sufficient data to generate the requested products.",
 "display_message": null,
 "causes": [
  {
   "display_message": null,
   "error_code": "ITEM_MISSING_DATA",
   "error_message": "The item is missing transaction data needed to generate the report. Send the user through Link to repair the item, then generate a new report.",
   "error_type": "CRA_REPORT_ERROR",
   "item_id": "pZ942ZA0npFEa0BgLCV9DAQv3Zq8ErIZhc81F"
  }
 ],
 "request_id": "HNTDNrA8F1shFEW"
}