Troubleshooting
Install fails with "error getting credentials" (macOS)
Docker can't find its sign-in helper, docker-credential-desktop. Delta's image is public and needs no sign-in.
- Quit and reopen Docker Desktop, then open a new terminal and run
./delta.sh installagain. - Still failing? In
~/.docker/config.json, delete the"credsStore": "desktop"line and try again.
The welcome page says my Plaid keys are missing or rejected
Delta checks the keys at startup and logs [delta] Plaid <env>: keys OK when they work.
- Entered the keys in the browser? Open Settings → Plaid → Replace and paste them again. The secret must match the environment you picked (Sandbox or Production).
- Using
.env? Make surePLAID_CLIENT_IDand the secret for yourPLAID_ENV(PLAID_SANDBOX_SECRETorPLAID_PRODUCTION_SECRET) are there, then restart (docker compose up -d).
I linked an account but see no transactions
The first pull from Plaid can take a minute or two. Press the sync icon next to the connection on the overview, or wait for the next scheduled sync.
Brokerage and retirement accounts never show rows on the Transactions page. Their activity is on the Investments page.
A connection shows a red Reconnect button
The bank wants you to sign in again (for example after a password change or an expired consent). Click Reconnect and finish Plaid Link; nothing is lost. An amber dot instead means the last sync hit a temporary error, which usually clears on the next run.
"… is already connected"
You linked a bank whose accounts Delta already has. A second copy would count every balance and transaction twice, so Delta keeps the existing connection and removes the new one at Plaid. If the existing connection stopped syncing, use its Reconnect button instead. Other accounts at the same bank (a partner's login, a business login) link normally.
Investments page asks me to grant access
The connection was linked without investments consent. Click Grant investments access to add it in Plaid Link; you don't need to re-link.
"Could not start Plaid Link" or "Sync failed"
Pages load but every action fails: the API is refusing your requests as coming from outside the allowed networks.
- On the same computer, Docker install: with
DELTA_BIND=127.0.0.1Docker hides your browser's address. AddDELTA_ALLOWED_NETWORKS=0.0.0.0/0to.envand rundocker compose up -d(newdelta.shinstalls set this). - From your phone: on Linux with Tailscale this is usually Docker NATing tailnet traffic so it no longer arrives from your device's
100.xaddress. Switch to host networking, see Linux with Tailscale. On Docker Desktop for macOS, see the macOS note.
"Delta doesn't know the address"
You opened Delta under a public domain name it wasn't told about (a reverse proxy, a tunnel, a DNS record of your own). Add the name to DELTA_ALLOWED_HOSTS (or set DELTA_URL to that address) and restart, or open Delta by its IP address. Delta checks this so another website can't read it through your browser. Using your own domain.
My agent gets 401 or 403
401: the token is missing, mistyped or revoked. Check Settings → Agents and create a new one if needed.403: either the token is read-only and the agent tried to write (create a Read + edit one), or the request came from outside the allowed networks. Check that the agent's machine is on your tailnet, or add its network toDELTA_ALLOWED_NETWORKS. On Docker, see Linux with Tailscale or, on macOS, the Docker Desktop note.
The data looks stale
Agents warn when the newest data is more than 3 days old. Check the jobs container (docker compose logs jobs) or your timers, and look for connection errors on the overview. Banks themselves only update transactions a few times a day, while balances are live.
The Ask button says "Copy failed"
Some browsers refuse to copy from a plain-http page. Select the text on the card and copy it by hand.
The container doesn't start after a reboot
If DELTA_BIND is a Tailscale IP, Docker may have started before Tailscale. See Boot order with Tailscale.