Find the message or symptom you see, then follow the fix. Messages in quotes are shown by the app exactly as written.
Deploying
The first build fails at the D1 migrations step
The build stops with an authentication or permission error (for example code 10000 or 7403) on wrangler d1 migrations list or apply. The deploy applies the database schema during Workers Builds, and the build’s API token has no D1 permission, so nothing is deployed.
- In the Cloudflare dashboard, open My Profile > API Tokens and edit the token used by Workers Builds. Your Worker shows which one under Settings > Build > API token.
- Add the account permission D1 > Edit and save.
- Retry the build from the Worker’s Deployments (or Builds) page, or push a new commit.
The migration step only applies what is missing, so a retry is safe.
The button or setup cannot create the originals bucket
R2 must be turned on with a payment method on your Cloudflare account, even if your use stays inside the free allowance. Add one in the dashboard, then deploy again. See Limits.
Every page shows “Configuration error: …”
A Worker variable has a value the app does not accept. The message names it. Fix the variable in the dashboard or in your config and deploy again. (A bad value saved in Settings never causes this; Settings ignores it and shows a warning.) See Configuration.
Signing in
The browser keeps asking for the password
- Check the sign-in name. It is
ownerunless you changedAUTH_USERNAME. - The password must be at least 16 characters, and example values such as
change-meare refused. With a password that is too short, every sign-in fails. Set a new one withbunx wrangler secret put NUITS_PASSWORD(add--config wrangler.production.jsoncif you deployed withbun run setup). - The app only accepts the password over HTTPS (or on
localhost). Open thehttps://address.
“Sign in through Cloudflare Access to use this app.”
Access mode is on, so the password no longer works. Sign in through your Access application, with an email listed in ACCESS_ALLOWED_EMAILS. See Protect the app with Cloudflare Access.
“That request came from another site, so we ignored it.” when you press a button
Form posts must come from the same address the app is served on. Open the app at its normal address, not through another hostname or a copied link to a different host. If you serve it under a path, see Serve the app under a path.
Adding receipts
Error 1102 (“Worker exceeded resource limits”) when uploading a PDF
Reading a PDF uses far more than the Workers Free plan’s 10 ms of CPU time per request. Plan on Workers Paid ($5 a month) if you upload PDFs. Photos and forwarded email bodies may fit in Free.
“That file isn’t the kind it says it is.”
The file’s contents do not match its type, for example a renamed file. Export or save it again as a real PDF, PNG, JPEG or WebP.
“That file is too big.” or a file that could not be added
PDFs can be up to 10 MiB and 25 pages, photos up to 4 MiB, and an email up to 20 MiB. Shrink or split the file, or take a photo of the page that matters.
A receipt says “Reading” for a long time
Select Refresh. If it is still reading after two minutes, select More > Read again.
Try reading it again. on several receipts at once
Workers AI may be unavailable, or the Workers Free daily AI allowance may be used up, in which case calls fail until 00:00 UTC. Wait, then select Read again on each receipt.
Type the numbers in, or upload a photo. on a PDF
The card says “This PDF has no readable text. Probably a scan.” The app reads text PDFs only. Type the numbers in, or upload a photo of it with More > Upload a copy (or with Add) and mark the PDF as its duplicate. See Resolve duplicate warnings.
A forwarded email never appears
- Look at the top of Receipts To do for New sender rows: mail from a sender who is not allowed waits there. Press Allow. You can also add senders in Settings > Email > Email senders.
- Mail that fails the sender check is dropped. Forwarding services can change the sending address; check what actually arrives.
- Look on Receipts for the flag Is this email genuine?: mail the app could not prove came from you waits there unread.
- Check the Email Routing rule for the receipt address is Send to a Worker and points at this Worker. See Set up email.
After Read it, the email shows Upload a PDF or a photo.
The email is kept as a whole message, which the reader cannot read directly. Download it with More > Download original, save the receipt from it, and add it with More > Upload a copy. Then, on the email, set Seller to match the new receipt, pick the new receipt under Other fields > Duplicate of, and select Skip to save it. This is how the app works today: an email it could not verify is kept whole and never read, and when you ask for it to be read it is treated as a single file the reader does not support, so it fails with unsupported_document. Its attachments are not read separately.
“This receipt changed since you opened it. Reload and try again.”
The receipt changed since you opened it, for example because it was read again in another tab. Reload the page, check the values, and save again.
“Fill in the seller, date, currency, total, amount before VAT and VAT, then approve.”
Approval needs the seller, date, currency, total, before-VAT and VAT amounts. Fill in the empty ones; enter 0 for VAT if there is none. See Check and approve a receipt.
Importing a bank CSV
“You already imported this file into a different account.”
The same file was imported into a different account. A file belongs to one account only. Pick that account, or check you exported the right statement.
“The check ran out of time. Check the file again.”
A check in the column editor is valid for 30 minutes. Start again from Import statement on Bank.
“You changed the column settings. Choose Check again before you import.”
You changed the mapping after the last check. Select Check again, then import.
“The bank gave two different payments the same ID. Check the file for repeated IDs.”
A payment with the same bank transaction ID is already in this account with a different date, amount or payee. Check that you chose the right account and the right file. See Resolve duplicate warnings.
The amounts are the wrong sign, or dates are off by months
Open The columns look wrong? Adjust how we read the file and check Money out is shown as and Date format. For dates with slashes, the day and month order must be confirmed. See Import a bank CSV.
Error 1102 or a D1 error on a large import
A large file can exceed the Workers Free limits. Split the statement into smaller date ranges, or move to Workers Paid.
Matching
“Approve this receipt first. Only approved receipts can be matched.”
A sales invoice is matched to money in only once it is approved, or when its only flag is the missing euro amount. Approve it first. Receipts for money out can be matched while still in Receipts To do. See Check and approve a receipt.
“This receipt and payment don’t line up exactly. Press Match if they belong together.”
The receipt and payment do not fit the usual date and amount rules. The app says why in a line under the comparison table. If the match is right, select Match.
“That receipt is already matched to another payment.”
A receipt can be matched to one payment only. On Bank under All, open the other payment’s More and select Unmatch first.
A match I made disappeared
Saving a change to a receipt removes its bank match, and automatic matching runs again. Make the match again on Bank.
“This payment changed, or it is part of a transfer between your accounts. Undo the transfer first.”
The payment is one side of a transfer pair. Open its More and select Undo transfer first. See Pair an own-account transfer.
“One of these payments changed. Look at both payments again before you link them.”
The two sides must be in different accounts, have the same amount and currency, and neither can be matched, marked Not a purchase, or already paired.
Sending the month
“This month is too big for one package (N files, 900 max).”
One package holds up to 900 files. Download the CSV and fetch the originals from the app.
“This month changed since you opened the page. Reload it, check what you send, then mark it as sent.”
Something was added or corrected while the page was open. Reload it, check what you send, then select Mark September as sent (with your month) again.
“Nothing has changed since you sent this month.”
There is nothing new to send. Use Download again or Download all if you need the full package.
A very large month fails to download on Workers Free
Building the ZIP checksums every byte, which can exceed the Free plan’s CPU limit. Move to Workers Paid, or send the CSV.
My accountant cannot open the ZIP in OneDrive
OneDrive’s web page does not unzip. Unzip it first and upload the folder (Upload > Folder), or turn on the direct upload. See Upload the month to OneDrive.
Anything else
“Request failed. Saved documents can be retried.” means something went wrong on the server. Anything already saved is kept. Try again, and check your Worker’s logs in the Cloudflare dashboard; they hold short reason codes, never receipt content.