Virtual column shows correct value briefly after save, then reverts to stale/zero value in Detail view

I have a virtual column with a simple App formula that divides two real number columns on the same row (no cross-table dependency). When I edit a row and save, the Detail view shows the correct computed value immediately. A few seconds later, without any further action from me, the value changes to an incorrect one (in my case, it dropped to zero even though the correct value should have been a nonzero fraction).

I isolated this by testing across two rows with different inputs: a row with a single related value computed correctly and stayed correct, while a row with multiple related values computed correctly at first and then reverted. This pointed to a sync-related timing issue rather than a formula error.

I then tested by disabling every client sync setting I could find: server caching off, delta sync off, quick sync off, sync on start off, auto updates off. The problem still occurred with all of these disabled, both on the web app and in the mobile app, which suggests this is not something controllable from the app’s own sync configuration.

The only reliable workaround I found was to stop using a virtual column entirely and instead make the column persisted, backed by a real spreadsheet formula (ARRAYFORMULA in Google Sheets), so the value is a real stored value rather than something recomputed by the client on each view load.

Expected: a virtual column’s App formula should produce a consistent, correct value every time it is displayed, regardless of how much time has passed since the row was saved.

Repro steps:

  1. Create a virtual column with a simple App formula referencing two real columns on the same row (for example, a ratio or percentage).
  2. Add or edit a row with values that produce a nonzero, non-default result.
  3. Save, and observe the Detail view shows the correct value.
  4. Wait a few seconds without taking any action, and observe the value change to an incorrect one (in my case, zero).
  5. Confirm this happens even with server caching, delta sync, quick sync, sync on start, and auto updates all disabled.

It definitely sounds sync-related. I can imagine several possibilities:

  • Your spreadsheet is preventing the app from saving the complete row. As a general rule, you should avoid spreadsheet formulas and any features that have any effect on data access or presentation of any cells that might be used by AppSheet.
  • The form view used for input has a Form Saved event action configured that is modifying the input row, impairing the virtual column.
  • You have a bot configured (which runs at sync-time) that is modifying the rows, impairing the virtual column.

Thanks, but I think the scenario wasn’t fully understood. To clarify:

We didn’t choose the spreadsheet route from the start. The original bug happened with a pure AppSheet virtual column and App formula, a simple ratio between two real number columns, no spreadsheet formula, no Form Saved event action, no sync-time bot involved. The Detail view showed the correct value first, then reverted to an incorrect one (zero) a few seconds later on its own.

I tested for all three of your scenarios specifically: no spreadsheet formula was present on the relevant columns, no Form Saved action was configured, and no bot was running. None of those three applied.

The only fix that worked was removing the virtual column entirely and replacing it with a real persisted column, computed by an ARRAYFORMULA in Google Sheets. With that change, the value never reverts to an incorrect one anymore. There is just the normal sync delay of a few seconds for a real column to update, which is expected behavior and not the same issue as before.

In short, the problem was AppSheet’s virtual column plus App formula corrupting the value during sync, not any spreadsheet side interference.

Thanks, but I think the scenario wasn’t fully understood. To clarify:

We didn’t choose the spreadsheet route from the start. The original bug happened with a pure AppSheet virtual column and App formula, a simple ratio between two real number columns, no spreadsheet formula, no Form Saved event action, no sync-time bot involved. The Detail view showed the correct value first, then reverted to an incorrect one (zero) a few seconds later on its own.

I tested for all three of your scenarios specifically: no spreadsheet formula was present on the relevant columns, no Form Saved action was configured, and no bot was running. None of those three applied.

The only fix that worked was removing the virtual column entirely and replacing it with a real persisted column, computed by an ARRAYFORMULA in Google Sheets. With that change, the value never reverts to an incorrect one anymore. There is just the normal sync delay of a few seconds for a real column to update, which is expected behavior and not the same issue as before.

In short, the problem was AppSheet’s virtual column plus App formula corrupting the value during sync, not any spreadsheet side interference.

Please try adding a multiplier (1.00) in either numerator or denominator of the virtual column’s app formula expression.

Something like ([Column_A] * 1.00)/ [Column_B]

or

[Column_A]/([Column_B] * 1.00)

If the suggestion works, Steve has explained it in detail in the following tip post.