Troubleshooting
Troubleshooting Plaid Link errors
Fix common Plaid errors on WordPress: INVALID_CREDENTIALS, ITEM_LOGIN_REQUIRED, INSTITUTION_DOWN, INVALID_LINK_TOKEN, INVALID_API_KEYS and more, with causes.
Last updated by the PluginLoom team
Every Plaid error has an error_type and an error_code, and Link passes them to the page in the onExit callback. Find the code in the tables below. Most errors are fixed by the user retrying, by sending the user through Link's update mode, or by correcting a key or setting.
Where do I find the error code?#
Plaid's Link web docs (opens in a new tab) say the onExit error object includes error_type, error_code, error_message (for developers) and display_message (for users). The metadata also includes a link_session_id and request_id. Note these for any support ticket. The Plaid Dashboard Logs section shows API activity too.
Login and account errors (ITEM_ERROR)#
From Plaid's Item errors (opens in a new tab) page:
| Code | Common cause | Fix |
|---|---|---|
INVALID_CREDENTIALS | Wrong username or password, extra spaces, or the wrong login portal for that bank | User retries carefully. Warn that repeated failures can lock the account |
INVALID_MFA | Wrong code, inactive device, or the bank did not send the code | User retries |
ITEM_LOCKED | Too many wrong attempts tripped the bank's lock | User restores access on the bank's own site, then tries again |
ITEM_LOGIN_REQUIRED | Password, MFA or consent changed or expired; bank moved to OAuth; Sandbox Item over 30 days old | Send the user through Link update mode |
INSUFFICIENT_CREDENTIALS | User left the OAuth flow before finishing | User tries again or picks another bank |
PASSWORD_RESET_REQUIRED | Bank requires a password reset | User resets it at the bank, then reconnects |
USER_SETUP_REQUIRED | Bank needs the user to accept terms or finish setup | User logs in to the bank and completes it |
NO_ACCOUNTS | No open, eligible accounts | Confirm the user has an eligible account |
NO_AUTH_ACCOUNTS | No debitable checking, savings or cash management account, or sharing not granted | User links a checking or savings account and allows sharing |
ACCESS_NOT_GRANTED | User did not share the data the product needs | User reconnects and selects the needed sharing options |
ITEM_NOT_SUPPORTED | Bank restricts that account type or access | User connects a different account |
MFA_NOT_SUPPORTED | Bank's MFA type is not supported | User changes MFA settings or uses another account |
PRODUCT_NOT_READY | Data requested before it was ready | Wait for the webhook, then retry |
PRODUCTS_NOT_SUPPORTED | Product called on an Item that does not support it | Check /item/get and request the product at link time |
USER_INPUT_TIMEOUT | User took too long (5 minutes at account selection) | User starts again |
Bank side errors (INSTITUTION_ERROR)#
From Plaid's Institution errors (opens in a new tab) page:
| Code | Common cause | Fix |
|---|---|---|
INSTITUTION_DOWN | Bank maintenance or a temporary problem | Ask the user to try later |
INSTITUTION_NOT_RESPONDING | Temporary problem at the bank | Try later |
INSTITUTION_NOT_AVAILABLE | Plaid's connection to the bank is down for maintenance | Try later |
INSTITUTION_NO_LONGER_SUPPORTED | Plaid no longer supports that bank, or it now needs OAuth | User picks another bank |
INSTITUTION_REGISTRATION_REQUIRED | Account recently enabled for Production (allow 1 to 2 days), app details not registered, or security questionnaire incomplete | Finish Dashboard registration and wait |
UNAUTHORIZED_INSTITUTION | Bank needs manual enablement or OAuth registration is incomplete | Check OAuth status in the Dashboard |
INSTITUTION_NOT_ENABLED_IN_ENVIRONMENT | That bank is not available in the environment you are using | Use a supported Sandbox bank, or switch environments |
For the first three, if the error lasts, Plaid asks you to open a support ticket with the institution_id and the link_session_id or request_id.
Setup and key errors (INVALID_INPUT, INVALID_REQUEST)#
| Code | Common cause | Fix |
|---|---|---|
INVALID_API_KEYS | client_id or secret does not match the environment | Paste the secret for the environment BankBridge is set to |
INVALID_LINK_TOKEN | Token expired (4 hours, 30 minutes in update mode), already used, from another environment, or invalidated after too many bad logins | Create a new link token. Also check page caching |
INVALID_ACCESS_TOKEN | Token invalid or from another environment | Do not mix Sandbox and Production tokens |
INVALID_PUBLIC_TOKEN | Token invalid, expired or from another environment | Exchange the public token right away; it lasts 30 minutes |
INCORRECT_DEPOSIT_VERIFICATION | Wrong micro-deposit code | User checks their statement for the 3 letter code |
TOO_MANY_VERIFICATION_ATTEMPTS | Three wrong micro-deposit codes | User must resubmit account details in Link |
INVALID_FIELD | A field is wrong, including a redirect URI that is not on the allowlist | Read error_message; add the redirect URI in the Dashboard |
Sources: Invalid input errors (opens in a new tab), Invalid request errors (opens in a new tab).
Link does not open at all. What now?#
Check these in order:
- Open the browser console. A Content Security Policy error means your policy must allow
cdn.plaid.com(see Plaid Link setup). - Turn off script combining, minifying or delaying for the Link page. Plaid says the script must load from
cdn.plaid.com. - Exclude the page from page caching so each visitor gets a fresh link token.
- Confirm your keys match the environment.
How do I test errors safely?#
In Sandbox, call /sandbox/item/reset_login to force ITEM_LOGIN_REQUIRED, then test your reconnect flow (Sandbox docs (opens in a new tab)).
Sources#
Checked October 23, 2026.
- Plaid, Item errors (opens in a new tab)
- Plaid, Institution errors (opens in a new tab)
- Plaid, Invalid input errors (opens in a new tab)
- Plaid, Invalid request errors (opens in a new tab)
- Plaid, Link web SDK (opens in a new tab)
- Plaid, Sandbox (opens in a new tab)
Plaid is a trademark of Plaid Inc. BankBridge is an independent plugin and is not affiliated with or endorsed by Plaid.
Was this page helpful?