The Connection Error screen, saves that do not stick, the Configure window, and changing the spreadsheet or tabs in Cloudflare.
The app needs two things to work: an internet connection, and permission to write to the spreadsheet. When either is missing, here is what you will see and what to do about it.
If the app cannot reach the spreadsheet when it opens, the form is replaced by a Connection Error screen with two buttons: Change Tab Name and Test Connection.
The commonest cause is spreadsheet permission. The app signs in to Google as its own dedicated Google account, and the spreadsheet must be shared with that account as an Editor. If someone changes the spreadsheet’s sharing — or replaces the spreadsheet — the app loses access. That account’s address is not printed in this guide; it is kept with the app’s private setup notes, and whoever set the app up has it.
What you do:
When a save works, you always get the green Expense saved successfully! message and the form clears. If you press Save Expense and that green message never appears — the button just stops showing Saving… and nothing else happens — the entry did not reach the spreadsheet. The app does not always show an error message for a failed save, so the green message is your proof of success.
What you do:
Red messages under individual boxes are different: those mean the app refused to try because something you typed is not acceptable (for example, an amount of zero). Fix the outlined field and save again — nothing was sent.
At the bottom of the main page there is a Configure button (the Change Tab Name button on the error screen opens the same window). It shows which spreadsheet the app is connected to, and lets you choose which tab new entries are saved to.
The tab is a drop-down list, not something you type. The list comes from the server, and it only ever offers tabs the app is actually allowed to write to — so you cannot pick one that quietly fails to save. The spreadsheet itself, and the app’s sign-in details, are set on the server and cannot be changed from this page. That is deliberate: anyone can open the app, and nobody visiting it should be able to redirect your entries somewhere else.
Changes made in this window last only until the page is next loaded. The app starts from its usual tab every time it opens, so a temporary change cannot linger and quietly send entries to the wrong place.
What you do (temporary change, this visit only):
This is the once-a-year job — pointing the app at a new year’s tab, or at a different spreadsheet altogether. It is done on the server, in Cloudflare, and it needs no code change and no republish: the app reads these settings fresh every time it runs.
The same steps are written inside the app itself, under Configure → Change the spreadsheet, or add a tab, permanently, so you do not have to find this page to do it.
What you do:
SHEETS_SPREADSHEET_ID — which spreadsheet the app writes to. This is
the long code in the middle of a Google Sheets web address, between /d/
and /edit.SHEETS_ALLOWED_TABS — which tabs may be written to, separated by
commas, for example Lines 2026,Lines 2027. Each name must match the tab
in the spreadsheet exactly.If you point the app at a different spreadsheet, share that spreadsheet with the app’s own Google account as an Editor first — otherwise the app will open on the Connection Error screen. That account’s address is kept with the app’s private setup notes.