The Chase "internal error" in Plaid is almost always a Chase-side setting, not an ExpenseBot bug. Plaid attempts the connection but Chase never hands back a valid token — usually because Third-Party Access is disabled on the Chase account.
Fix for 95% of users:
- Sign into chase.com in a browser (not the Chase mobile app)
- Go to Profile & Settings → Security → Account Access
- Make sure "Third-Party Access" is ENABLED for the accounts you want to connect
- Sign out of Chase everywhere, then clear Chase cookies:
- Chrome/Edge: Settings → Privacy and security → Cookies → See all site data → search "chase" → delete all Chase entries
- Safari: Settings → Privacy → Manage Website Data → search "chase" → Remove
- Firefox: Settings → Privacy & Security → Cookies and Site Data → Manage Data → search "chase" → Remove Selected
- Come back to ExpenseBot, open the reconciliation modal, and try Chase again
If Chase still fails after that, skip Plaid entirely and use the direct upload instead.
Uploading a Chase statement directly (no Plaid needed):
- Go to expensebot.ai and sign in
- Click the "My Reports" tab
- Under the "View my spreadsheet" button, click "Spreadsheet tools"
- Click "Match Receipts to Card"
In the reconciliation modal, below any Plaid-connected cards, you'll see a gray bar:
⬆ Upload a statement — PDF, CSV, OFX, QFX accepted
Click it, pick your Chase statement PDF (or CSV export from Chase's site), and ExpenseBot will parse it, cross-check it against your scanned receipts, and flag any missing ones. Same reconciliation result — no Plaid required.
