mirror of
https://github.com/actualbudget/actual.git
synced 2026-07-16 07:04:23 -05:00
[GH-ISSUE #6329] [Bug]: SimpleFIN integration reports INVALID_ACCESS_TOKEN even though access token works via SimpleFIN Bridge #80131
Open
opened 2026-05-19 03:37:47 -05:00 by GiteaMirror
·
9 comments
No Branch/Tag Specified
master
dependabot/npm_and_yarn/npm_and_yarn-cd62b4b37a
api-browser-custom-data-dir
tabedzki/feat/replacing-month-picker-with-day-picker
delay-initial-sync-until-loaded
jfdoming/mobile-app-build
cross-version-sync-compat
jfdoming/api-tokens-part-1
jfdoming/api-tokens-part-2
jfdoming/api-tokens-part-3
jfdoming/mobile-app-updates
claude/budget-version-migration-compat-151jlr
claude/worker-error-serialization-9iqtl7
claude/react-table-library-research-afx83z
claude/issue-8401-regression-test-9nw9l3
jfdoming/mobile-app-foundation-part-1
jfdoming/mobile-app-scaffold
release
ai-fix-cleanup-def-8290
claude/relaxed-shannon-jusywa
claude/fervent-keller-s6f2fq
claude/determined-feynman-st1y9z
claude/wizardly-einstein-vi2wce
claude/sweet-albattani-7nseio
feat/bank-sync-per-budget-file
claude/affectionate-cannon-y0kc82
claude/dependabot-findings-m9pgmb
claude/mac-app-ios-publish-zjs1lz
claude/vigilant-tesla-aiiyos
depot-migrate-secrets-1781296330308
claude/quirky-cerf-v5qck7
claude/animation-removal-alternative-2etfh1
claude/netlify-preview-comments-consolidate-9XPYa
osc/7391-error-boundaries-reports
claude/pensive-dijkstra-7DYui
claude/server-app-version-mismatch-HTCGv
claude/pr-8027-review-feedback-mELuO
claude/zealous-wozniak-e5pO0
claude/intelligent-heisenberg-BSHJq
claude/translation-download-refactor-jFRsO
claude/mobile-performance-ideas-G9PAO
claude/github-issue-7988-5A5ly
blacksmith-migration-ff70d2d
claude/great-mayer-KRvOk
claude/react-native-ios-compilation-fcJh5
claude/serene-goldberg-58xv0
claude/kind-euler-LVG3K
release-automation/edge-nightly
7710-bundle-migrations
claude/fix-docker-build-error-WMfed
claude/llm-compatible-release-notes-t20Nr
7710-tests-tdd
cursor/transaction-table-rewrite-f077
claude/plan-ci-secure-context-OtEe1
claude/fix-issue-7667-DPXi3
cursor/resolve-pr-7449-ee11
claude/fix-typescript-build-error-JPtZ5
copilot/add-repository-configs-to-packages
worktree-compressed-drifting-ritchie
claude/api-consumer-verification-kfz1K
pr-7454
claude/fix-issue-7410-LLLQ4
revert-7281-generate-icons
react-query-useSchedules
copilot/sub-pr-6140
package-upgrades
v26.7.0
v26.6.0
v26.5.2
v26.5.1
v26.5.0
v26.4.0
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
tech-support
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#80131
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @jbrnm on GitHub (Dec 7, 2025).
Original GitHub issue: https://github.com/actualbudget/actual/issues/6329
Verified issue does not already exist?
What happened?
Environment
25.12.0(also reproduced with other releases as far back as25.9.0)https://beta-bridge.simplefin.org)Summary
The SimpleFIN bank sync integration in Actual consistently reports
Invalid SimpleFIN access token. Reset the token and re-link any broken accounts.even when using a freshly generated SimpleFIN setup token, with a corresponding access token that works correctly when used directly against the SimpleFIN Bridge/accountsendpoint.Suspected Cause
Questions
Happy to provide more logs or test any patches/config changes if helpful.
How can we reproduce the issue?
Steps to Reproduce
Variant attempted: base64 setup token pasted directly; also tried using the derived
ACCESS_URL(see Diagnostics).Expected Behavior
Actual Behavior
The UI shows an error toast and console error:
Repeated attempts with newly generated SimpleFIN tokens (after revoking old ones in SimpleFIN) produce the same behavior.
Browser devtools Network panel shows
POST /simplefin/accountsresponding with:The UI gets stuck in a ���SimpleFIN dance” where it keeps asking for the token again.
Server Logs
From
podman logs actualduring attempts:All relevant SimpleFIN endpoints return HTTP 200; there are no
TypeError: fetch failedorETIMEDOUTstack traces like in issue #5346.Diagnostics Against SimpleFIN Bridge
Using several setup tokens, I verified the SimpleFIN flow outside of Actual:
Decode setup token → claim URL
Exchange setup token for access URL
Use access URL to fetch accounts
This confirms:
Yet when the same setup token is given to Actual,
POST /simplefin/accountsreturnsINVALID_ACCESS_TOKEN. Throughout testing, I confirmed that the payload of thePOST /secretrequest in the browser Network tab exactly matches the current SimpleFIN setup token value I generated in the Bridge UI.Where are you hosting Actual?
Docker
What browsers are you seeing the problem on?
Firefox
Operating System
Linux
@Ellessm commented on GitHub (Dec 9, 2025):
I'd like to add that I've encountered this same behavior on my self hosted actual server running on a raspberry pi 4. I asked the discord for assistance and was directed to this thread.
In the end, I was able to fix my server by using a different machine (docker through orbstack on an m4 Mac mini - an expensive solution). I tried to restore my server using my latest backups, but the same error was encountered until I used an older backup dating to 11-07-2025. My connection to simpleFin was fixed and I was able to reimport all the transactions from the past month. Note that restoring this same backup did not work on the raspberry pi 4; the simplefin connection remained broken. On both machines, I used the same docker-compose.yml configuration, and both servers were accessed through a reverse proxy using Caddy.
@jbrnm commented on GitHub (Dec 16, 2025):
Just to add another data point, I was ultimately able to get Actual Budget's SimpleFIN syncing working using the macOS desktop application. And this from the same LAN my AlmaLinux container server runs on. The one running on my server still does not work with the same pattern as before. So it would seem this may be an edge case bug having something to do with some aspect of my specific configuration: AlmaLinux 10, Podman, Traefik or Firefox (also tested with Brave and Google Chrome). Happy to provide my configuration files if it would be useful in diagnosing the issue.
@mazarian commented on GitHub (Jan 17, 2026):
I'm experiencing the same issue. It was working fine, then stopped working. I'm seeing the following in my logs:
@imlogang commented on GitHub (Jan 18, 2026):
Adding that I am getting this same error now on 26.1.0. Was previously working as of 1/2/26 when I last pulled data.
Was getting issues syncing, and the UI said to try a new token, but a new token is getting this in the network tab.:
No errors within the Docker container.
Firefox, Docker 29.1.4 running on Ubuntu server.
@cco commented on GitHub (Feb 10, 2026):
Seeing the exact same errors here as well. Just setup actual budget and Simplefin has been flakey from the start. Managed to get most of my accounts imported last night, but while adding the rest today I ran into this error. Attempted to reset the key and am now stuck in endless prompt loop for the auth key.
Update: Well, for whatever reason unlinking a random account and relinking it with a new token resolved the issue for me.
@Cory-Christensen commented on GitHub (Feb 14, 2026):
I'm also experiencing this issue after updating my docker image. I'm running on Synology, Brave Browser. I've also tried the macOS app (still chromium-based); it doesn't work there either.
@totallynotjon commented on GitHub (Mar 1, 2026):
I am also experience this issue.
Running docker latest, caddy for proxy.
26.2
Was working fine before, I wonder if there is some state not being cleaned up and the token exchange isn't happening properly the second time around.
Tried creating new access token, same error. When trying in curl I am able to get data.
@totallynotjon commented on GitHub (Mar 1, 2026):
Per always, my issue was dns. Messing with my setup, dns was broken inside the container. Rest of actual works fine but needs dns to get the simplefin IP when exchanging the token.
Check if dns is resolving where ever actual lives for you.
Important to note that you need to insert an UNCLAIMED simplefin key. As they are one time claim, you can't reuse
@Cory-Christensen commented on GitHub (Apr 29, 2026):
Resolved my issue - SimpleFIN's response was being blocked by my firewall