‘Finalize Inspection’ button briefly appears before sync when marking a question as Bad

Hi everyone,

I’d like to share an issue I’m facing with an application I’m developing and see if anyone has experienced something similar or has any suggestions.

I’m working on an app that records inspections, where I have a main table called Inspections and a related child table called InspectionResults.
The process works as follows:

  1. When I create an inspection, it starts with the initial status “In Progress.”

  2. Inside the inspection form, there are several questions that can be marked as Good / Bad / N/A.

  3. When a question is marked as “Bad,” additional fields such as Observation and Photo appear, and the related InspectionResults subtable becomes available.

  4. It’s not mandatory to add results at that time — users can create the inspection first and then add results later without any issue.

  5. Once the inspection is created, there’s a button that allows changing the status to “Completed,” but it should only appear when all related results are marked as “Concluded.”

Everything works fine until the following situation occurs:

  • Within the inspection form, the user marks at least one question as “Bad.”

  • No result is added to the InspectionResults subtable.

  • The user then presses Save.

At that moment, before AppSheet finishes saving and syncing the data, the “Finalize Inspection” button becomes temporarily visible.
During that short period (while AppSheet is still processing data in Google Sheets), the user can press “Finalize” and bypass the validation rules that are supposed to prevent finalizing the inspection when the requirements aren’t yet met.

Once synchronization completes, the button behaves correctly and disappears if conditions aren’t satisfied — but that short visibility window creates a validation gap that could compromise data integrity.

2025-10-15 10-10-38

It seems that AppSheet evaluates action visibility before all records are fully synced, which causes the button to appear based on an incomplete dataset.

Has anyone else encountered this issue?
Is there a way to delay action visibility or force validation to wait until all records (including unsynced data) are completely saved?

I’d really appreciate any insights or experiences you can share :folded_hands:

Is there automation adding necessary rows?

Frequently, this occurs because the button expression is dependent on records that are inserted by automation and not immediately available on the device side data. Data added by automation is not added into the tables on the device until after a Sync.

The state of the row, immediately after Save, allows the button to be shown because the new records have not been added yet.

Right after tapping Save, is there any other data attribute the app can inspect to determine that the button should NOT be shown yet?

If not, it can get tricky to create some kind of data point that allows you determine to hide the button until after automation is done processing.

Maybe you can place the row in a temporary state - e.g. “Processing” - and then have the automation set the actual state when its done. It is not always easy to identify when records are done being inserted depending on the automation.

To avoid these situations, I typically use actions set to fire on the Form Saved behavior to add the rows instead of automation.

I hope this helps!

2 Likes