Plaid logo
Docs
ALL DOCS

Errors

  • Overview
  • Item errors
  • Institution errors
  • API errors
  • Assets errors
  • Payment errors
  • Transactions errors
  • Transfer errors
  • Income errors
  • Sandbox errors
  • Invalid Request errors
  • Invalid Input errors
  • Invalid Result errors
  • Rate Limit Exceeded errors
  • Link web errors
  • Recaptcha errors
  • OAuth errors
  • Microdeposits errors
  • Partner errors
Plaid logo
Docs
Plaid.com
Get API keys
Open nav

Item Errors

Guide to troubleshooting Item errors

ACCESS_NOT_GRANTED

The user did not grant necessary permissions for their account.
Common causes
  • This Item's access is affected by institution-hosted access controls.
  • The user did not agree to share, or has revoked, access to the data required for the requested product. Note that for some institutions, the end user may need to specifically opt-in during the OAuth flow to share specific details, such as identity data, or account and routing number information, even if they have already opted in to sharing information about a specific account.
Troubleshooting steps
Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "ACCESS_NOT_GRANTED",
5 "error_message": "access to this product was not granted for the account",
6 "display_message": "The user did not grant the necessary permissions for this product on their account.",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

INSTANT_MATCH_FAILED

Instant Match could not be initialized for the Item.
Common causes
  • Instant Auth could not be used for the Item, and Instant Match has been enabled for your account, but a country other than US is specified in Link's country code initialization.
  • The Item does not support Instant Auth or Instant Match. If this is the case, Plaid will automatically attempt to enter a micro-deposit based verification flow.
Troubleshooting steps
Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "INSTANT_MATCH_FAILED",
5 "error_message": "Item cannot be verified through Instant Match. Ensure you are correctly enabling all auth features in Link.",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

INSUFFICIENT_CREDENTIALS

The user did not provide sufficient authorization in order to link their account via an OAuth login flow.
Common causes
  • Your user abandoned the bank OAuth flow without completing it.
Troubleshooting steps

If this error persists, please submit a Support ticket with the following identifiers: access_token, institution_id, and either link_session_id or request_id.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "INSUFFICIENT_CREDENTIALS",
5 "error_message": "insufficient authorization was provided to complete the request",
6 "display_message": "INSUFFICIENT_CREDENTIALS",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

INVALID_CREDENTIALS

The financial institution indicated that the credentials provided were invalid.
Link user experience

Your user will be redirected to the Credentials pane to retry entering correct credentials.

Common causes
  • The user entered incorrect credentials at their selected institution.
    • Extra spaces, capitalization, and punctuation errors are common causes of INVALID_CREDENTIALS.
  • The institution requires special configuration steps before the user can link their account with Plaid. KeyBank and Betterment are two examples of institutions that require this setup.
  • The user selected the wrong institution.
    • Plaid supports institutions that have multiple login portals for the various products they offer, and it is common for users to confuse a different selection for the one which their credentials would actually be accepted.
    • For example: a user may have selected Fidelity instead of Fidelity - NetBenefits. This confusion is particularly common between Fidelity (brokerage accounts) and Fidelity NetBenefits (retirement accounts) and between Vanguard (brokerage accounts) and My Vanguard Plan (retirement accounts). This is also common for users attempting to link prepaid stored-value cards, as many institutions have separate login portals specifically for those cards.
Troubleshooting steps

Note: The Institution may lock a user out of their account after 3-5 repeated attempts, resulting in an ITEM_LOCKED error.

If the credentials are confirmed to be legitimate, and a user still cannot authenticate, please submit an 'Invalid credentials errors' Support ticket with the following identifiers: access_token, institution_id, and either link_session_id or request_id.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "INVALID_CREDENTIALS",
5 "error_message": "the provided credentials were not correct",
6 "display_message": "The provided credentials were not correct. Please try again.",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

INVALID_MFA: OTP Device & Code

The institution indicated that the provided response for the selected device and OTP code was invalid.
Link user experience

Your user will be redirected to the MFA Device pane to reselect their multi-factor authentication device and re-enter their one-time code.

Common causes
  • The user selected an MFA device that is not active.
  • The institution failed to send the one-time code for the user's selected device.
Troubleshooting steps

If the user does not receive a one-time code or still cannot succeed with a current MFA device login, please submit a 'Invalid credentials errors' Support ticket with the following identifiers: access_token, institution_id, and either link_session_id or request_id.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "INVALID_MFA",
5 "error_message": "the provided MFA response(s) were not correct",
6 "display_message": "The provided MFA responses were not correct. Please try again.",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

INVALID_MFA: Questions

The institution indicated that the provided response for MFA Questions was invalid.
Link user experience

Your user will be redirected to the MFA Questions pane to retry entering the correct answer.

Common causes
  • The user entered an incorrect answer for the security question presented by the selected institution.
Troubleshooting steps

If the user still cannot log in despite providing correct answers to their security questions, please submit a 'Invalid credentials errors' Support ticket with the following identifiers: access_token, institution_id, and either link_session_id or request_id.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "INVALID_MFA",
5 "error_message": "the provided MFA response(s) were not correct",
6 "display_message": "The provided MFA responses were not correct. Please try again.",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

INVALID_MFA: Selections

The institution indicated that the provided response for MFA Selections was invalid.
Link user experience

Your user will be redirected to the MFA Selections pane to retry selecting the correct answers.

Common causes
  • The user provided an incorrect answer to the security question.
Troubleshooting steps
Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "INVALID_MFA",
5 "error_message": "the provided MFA response(s) were not correct",
6 "display_message": "The provided MFA responses were not correct. Please try again.",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

INVALID_SEND_METHOD

Returned when the method used to send MFA credentials was deemed invalid by the institution.
Link user experience

Your user will be shown an error message indicating that an internal error occurred and will be prompted to close Link.

Common causes
  • The institution is experiencing login issues.
  • The integration between Plaid and the financial institution is experiencing errors.
Troubleshooting steps

If the error persists, submit a 'Multi-factor authentication issues' Support ticket with the following identifiers: institution_id and either link_session_id or request_id.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "INVALID_SEND_METHOD",
5 "error_message": "the provided MFA send_method was invalid",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

INVALID_UPDATED_USERNAME

The username entered during update mode did not match the original username.
Link user experience

Your user will be directed to enter a different username.

Common causes
  • While linking an account in update mode, the user provided a username that doesn't match the original username provided when they originally linked the account.
Troubleshooting steps
Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "INVALID_UPDATED_USERNAME",
5 "error_message": "the username provided to /item/credentials/update does not match the original username for the item",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

ITEM_CONCURRENTLY_DELETED

This item was deleted while the operation was in progress.
Common causes
  • An Item was deleted via /item/remove while a request for its data was in process.
Troubleshooting steps
Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "ITEM_CONCURRENTLY_DELETED",
5 "error_message": "This item was deleted while the operation was in progress",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

ITEM_LOCKED

The financial institution indicated that the user's account is locked. The user will need to work with the institution directly to unlock their account.
Link user experience

Your user will be directed to a new window with the institution's homepage to unlock their account. Link will then display the Institution Select pane for the user to connect a different account.

Common causes
  • The user entered their credentials incorrectly after more than 3-5 attempts, triggering the institution’s fraud protection systems and locking the user’s account.
Troubleshooting steps

If the user is persistently locked out of their institution, submit an 'Invalid credentials errors' Support ticket with the following identifiers: access_token, institution_id, and either link_session_id or request_id.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "ITEM_LOCKED",
5 "error_message": "the account is locked. prompt the user to visit the institution's site and unlock their account",
6 "display_message": "The given account has been locked by the financial institution. Please visit your financial institution's website to unlock your account.",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

ITEM_LOGIN_REQUIRED

The financial institution indicated that the user's password or MFA information has changed. They will need to reauthenticate via Link's update mode.
Developer experience

This error is frequently encountered during a /[product]/get request.

Common causes
  • The user changed their password.
  • The user changed their multi-factor authentication device, questions, or answers.
  • The institution updated its multi-factor security protocols.
  • The institution uses an OAuth-based connection and the user's access-consent has expired.
  • Your integration has switched to using an OAuth-based connection to the user's institution.
Troubleshooting steps

If the error is legitimate, having the user authenticate again should return their Item to a healthy state without further intervention.

If this error persists, please submit a Support ticket with the following identifiers: access_token, institution_id, and either link_session_id or request_id.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "ITEM_LOGIN_REQUIRED",
5 "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",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

ITEM_NOT_FOUND

The Item you requested cannot be found. This Item does not exist, has been previously removed via /item/remove, or has had access removed by the user
Common causes
  • Item was previously removed via /item/remove.
  • The user has depermissioned or deleted their Item via my.plaid.com.
  • Plaid support has deleted the Item in response to a data deletion request from the user.
Troubleshooting steps
Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "ITEM_NOT_FOUND",
5 "error_message": "The Item you requested cannot be found. This Item does not exist, has been previously removed via /item/remove, or has had access removed by the user.",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

ITEM_NOT_SUPPORTED

Plaid is unable to support this user's accounts due to restrictions in place at the financial institution.
Link user experience

Your user will be redirected to the Institution Select pane to connect a different account.

Common causes
  • Plaid does not currently support the types of accounts for the the connected Item, due to restrictions in place at the selected institution.
  • Plaid does not currently support the specific type of multi-factor authentication in place at the selected institution.
  • The credentials provided are for a 'guest' account or other account type with limited account access.
Troubleshooting steps

If the error persists and none of the common causes above seem to apply, contact Support.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "ITEM_NOT_SUPPORTED",
5 "error_message": "this account is currently not supported",
6 "display_message": "The given account is not currently supported for this financial institution. We apologize for the inconvenience.",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

MFA_NOT_SUPPORTED

Returned when the user requires a form of MFA that Plaid does not support for a given financial institution.
Link user experience

Your user will be redirected to the Institution Select pane to connect a different account.

Common causes
  • Plaid does not currently support the specific type of multi-factor authentication in place at the selected institution.
  • The user's multi-factor authentication setting is configured not to remember trusted devices and instead to present a multi-factor challenge on every login attempt. This prevents Plaid from refreshing data asynchronously, which many products (especially Transactions) require.
Troubleshooting steps

If user's settings are not configured to present a multi-factor challenge on every login attempt but this error is still appearing, submit a 'Multi-factor authentication issues' Support ticket with the following identifiers: institution_id and either link_session_id or request_id.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "MFA_NOT_SUPPORTED",
5 "error_message": "this account requires a MFA type that we do not currently support for the institution",
6 "display_message": "The multi-factor security features enabled on this account are not currently supported for this financial institution. We apologize for the inconvenience.",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

NO_ACCOUNTS

Returned when there are no open accounts associated with the Item.
Link user experience

Your user will be redirected to the Institution Select pane to connect a different account.

Common causes
  • The user successfully logged into their account, but Plaid was unable to retrieve any open, active, or eligible accounts in the connected Item.
  • The user closed their account.
Troubleshooting steps

If this error persists and the user does have accounts at the institution that you should be able to access, please submit a Support ticket with the following identifiers: access_token, institution_id, and either link_session_id or request_id.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "NO_ACCOUNTS",
5 "error_message": "no valid accounts were found for this item",
6 "display_message": "No valid accounts were found at the financial institution. Please visit your financial institution's website to confirm accounts are available.",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

NO_AUTH_ACCOUNTS or no-depository-accounts

Returned from POST /auth/get when there are no valid checking or savings account(s) for which account and routing numbers could be retrieved.
Common causes
  • /auth/get was called on an Item with no accounts that can support Auth, or accounts that do support Auth were filtered out. Only debitable checking and savings accounts can be used with Auth.
  • Plaid's ability to retrieve Auth data from the institution has been temporarily disrupted.
  • The end user is connecting to an institution that uses OAuth-based flows but did not grant permission in the OAuth flow for the institution to share details for any debitable checking and savings accounts. Note that for some institutions, the end user may need to specifically opt-in during the OAuth flow to share account and routing number information even if they have already opted in to sharing information about their checking or savings account.
Troubleshooting steps

If the problem persists even though the end user has confirmed that they have a debitable checking or savings account at the institution, open a support ticket.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "NO_AUTH_ACCOUNTS",
5 "error_message": "There are no valid checking or savings account(s) associated with this Item. See https://plaid.com/docs/api/#item-errors for more.",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

NO_INVESTMENT_ACCOUNTS

Returned from POST /investments/holdings/get, POST /investments/transactions/get, or Link initialized with the Investments product, when there are no valid investment account(s) for which holdings or transactions could be retrieved.
Common causes
  • Link was initialized with the Investments product, but the user attempted to link an account with no investment accounts.
  • The /investments/holdings/get or /investments/transactions/get endpoint was called, but there are no investment accounts associated with the Item.
  • The end user is connecting to an institution that uses OAuth-based flows but did not grant permission in the OAuth flow for the institution to share details for any investment accounts.
Troubleshooting steps

If the problem persists, Plaid may be erroneously categorizing the account. If this is the case, open a support ticket.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "NO_INVESTMENT_ACCOUNTS",
5 "error_message": "There are no valid investment account(s) associated with this Item. See https://plaid.com/docs/api/#item-errors for more information.",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

NO_INVESTMENT_AUTH_ACCOUNTS

Returned from POST /investments/holdings/get or POST /investments/transactions/get when there are no valid investment account(s) for which holdings or transactions could be retrieved.
Common causes
  • The /investments/holdings/get or /investments/transactions/get endpoint was called, but there are no investment accounts associated with the Item.
  • The end user is connecting to an institution that uses OAuth-based flows but did not grant permission in the OAuth flow for the institution to share details for any investment accounts.
Troubleshooting steps

If the problem persists, Plaid may be erroneously categorizing the account. If this is the case, open a support ticket.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "NO_INVESTMENT_AUTH_ACCOUNTS",
5 "error_message": "There are no valid investment account(s) associated with this Item. See https://plaid.com/docs/api/#item-errors for more information.",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

NO_LIABILITY_ACCOUNTS

Returned from POST /liabilities/get when there are no valid liability account(s) for which liabilities could be retrieved.
Common causes
  • The /liabilities/get endpoint was called, but there are no supported liability accounts associated with the Item.
  • The end user is connecting to an institution that uses OAuth-based flows but did not grant permission in the OAuth flow for the institution to share details for any liabilities accounts.
Troubleshooting steps

If the problem persists, Plaid may be erroneously categorizing the account. If this is the case, open a support ticket.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "NO_LIABILITY_ACCOUNTS",
5 "error_message": "There are no valid liability account(s) associated with this Item. See https://plaid.com/docs/api/#item-errors for more information.",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

PRODUCT_NOT_ENABLED

A requested product was not enabled for the current access token. Please ensure it is included when when initializing Link and create the Item again.
Common causes
  • You requested a product that was not enabled for the current access token. Ensure it is included when when calling /link/token/create and create the Item again.
Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "PRODUCT_NOT_ENABLED",
5 "error_message": "A requested product was not enabled for the current access token. Please ensure it is included when when initializing Link and create the Item again.",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

PRODUCT_NOT_READY

Returned when a data request has been made for a product that is not yet ready.
Common causes
  • /transactions/get was called before the first 30 days of transaction data could be pulled.
  • /auth/get was called on an Item that hasn't been verified, which is possible when using micro-deposit based verification.
  • /signal/evaluate was called before the data pull was completed.
Troubleshooting steps
Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "PRODUCT_NOT_READY",
5 "error_message": "the requested product is not yet ready. please provide a webhook or try the request again later",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

PRODUCTS_NOT_SUPPORTED

Returned when a data request has been made for an Item for a product that it does not support. Use the /item/get endpoint to find out which products an Item supports.
Common causes
  • A product endpoint request was made for an Item that does not support that product.
  • A product endpoint request was made for an Item at an OAuth-based institution, but the end user did not authorize the Item for the specific product, or has revoked Plaid's access to the product. Note that for some institutions, the end user may need to specifically opt-in during the OAuth flow to share specific details, such as identity data, or account and routing number information, even if they have already opted in to sharing information about a specific account. (This usage is deprecated; see also ACCESS_NOT_GRANTED)
  • Updated accounts have been requested for an Item initialized with the Assets product, which does not support adding or updating accounts after the initial Link.
  • You are attempting to call /signal/evaluate on a non-US financial institution.
Troubleshooting steps
Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "PRODUCTS_NOT_SUPPORTED",
5 "error_message": "",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

USER_SETUP_REQUIRED

The user must log in directly to the financial institution and take some action before Plaid can access their accounts.
Link user experience

Your user will be directed to a new window with the institution's homepage to unlock their account. Link will then display the Institution Select pane for the user to connect a different account.

Common causes
  • The institution requires special configuration steps before the user can link their account with Plaid. KeyBank and Betterment are two examples of institutions that require this setup.
  • The user’s account is not fully set up at their institution.
  • The institution is blocking access due to an administrative task that requires completion. This error can arise for a number of reasons, the most common being:
    • The user must agree to updated terms and conditions.
    • The user must reset their password.
    • The user must enter additional account information.
Troubleshooting steps

Ask that the user log in to the bank, and confirm whether they are presented with some form of agreement page, modal, or some other actionable task. The user should also check their bank website for special settings to allow access for third-party apps, such as a "third party application password" or "allow third party access" setting.

This can usually be done completely online, but there are some financial institutions that require the user to call a phone number, or access a physical branch.

If the user is still unable to log in to their institution, please submit a 'Invalid credentials errors' Support ticket with the following identifiers: access_token, institution_id, and either link_session_id or request_id.

Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "USER_SETUP_REQUIRED",
5 "error_message": "the account has not been fully set up. prompt the user to visit the issuing institution's site and finish the setup process",
6 "display_message": "The given account is not fully setup. Please visit your financial institution's website to setup your account.",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

USER_INPUT_TIMEOUT

The user did not complete a step in the Link flow, and it timed out.
Common causes
  • Your user did not complete the account selection flow within five minutes.
Troubleshooting steps
Copy
1http code 400
2{
3 "error_type": "ITEM_ERROR",
4 "error_code": "USER_INPUT_TIMEOUT",
5 "error_message": "user must retry this operation",
6 "display_message": "The application timed out waiting for user input",
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?
Developer community
GitHub
GitHub
Stack Overflow
Stack Overflow
YouTube
YouTube
Twitter
Twitter
Discord
Discord