Need help fixing data sync issues in my Glide App project

I’m building a Glide App that pulls data from Google Sheets, but some fields randomly stop syncing or show outdated values. I’ve checked my sheet structure and basic settings, but I can’t figure out what’s causing the inconsistent updates. I need help understanding what might be wrong with my configuration, and what settings or best practices I should follow to keep the app and sheet reliably in sync for all users.

This usually comes down to how Glide reads the sheet and when Google updates it. A few things to check that often cause “random” stale fields.

  1. Check for ARRAYFORMULA and volatile formulas
    • If your values come from ARRAYFORMULA, QUERY, IMPORTRANGE, NOW, TODAY, RAND, RANDBETWEEN, Sheets sometimes delays recalcs. Glide then pulls old values.
    • Try converting key formulas to plain values for a test row. If sync looks ok, the formula timing is the problem.
    • For IMPORTRANGE, confirm the source sheet is not slow or over quota.

  2. One row with duplicate RowIDs
    • In Glide Data Editor, add the RowID column if you have not already.
    • Look for duplicates or blank RowIDs. Glide uses this as the “key”. If two rows share one RowID, fields look like they belong to the wrong row or stay outdated.

  3. Wrong column types or computed columns
    • In Glide, open the Data Editor. Check if the “bad” fields are computed columns like Relations, Lookups, Templates, If-Then-Else.
    • If the source column changed type in Google Sheets, Glide sometimes keeps the old type. Manually set the correct column type in Glide.
    • For relations, confirm the matching values are exact. No trailing spaces, different case, or hidden characters.

  4. Multiple tabs or duplicate columns
    • Confirm you don’t have two columns with the same header name in one sheet. Glide often maps to the first one and the other looks like it never updates.
    • If you cloned the tab or the app, check that you are still linked to the intended sheet, not an old copy.

  5. Sheet edit permissions and filters
    • If someone else edits the sheet, confirm they are not working in a filtered view that hides or moves rows. Glide reads the raw sheet, not the filtered view.
    • Check for Apps Script or add-ons that rewrite data. Those can revert values after Glide writes them.

  6. Sync settings and limits
    • In Glide, go to Settings → Data. Confirm sync is set to “Automatic” and that you did not hit row limits for your plan. If near the limit, some data behaves weird.
    • Try “Reload sheet” in the Glide Data Editor and see if the value in Glide updates.

    • If it updates only on manual reload, the automatic sync is blocked or slow.
    • If it still does not update, then Glide is reading another column or another sheet.
  7. Check for row reordering and deletions
    • If you use scripts to insert rows at the top or reorder rows, make sure you use RowID in Glide for references. Glide does not track rows by position, it uses RowID.
    • If you delete and re-add rows, but copy RowIDs by accident, the old row gets “reused” and looks stale.

Fast debug steps you can try now:

  1. Take one problematic field. Note its value in Sheets and in Glide.
  2. Hit “Reload sheet” in Glide.
  3. If still wrong, create a new test column in Sheets with a simple static value. See if Glide picks it up.
  4. If the test works, slowly remove formulas, scripts, or relations around the broken field until it behaves.

If you can share details like:
• Is the field a plain sheet column or a computed column.
• Any ARRAYFORMULA, IMPORTRANGE, or script.
• Rough row count and your Glide plan.

Then people here can point to the exact cause.

One angle I don’t see mentioned yet (building on what @caminantenocturno said) is how and where the data is actually being edited, and in what order things happen. Sync weirdness in Glide + Sheets is often more “race condition” than “bug”.

A few things to look at that specifically cause random stale values:

  1. Conflicting write sources
    If the same column is being written by:

    • Users in the app
    • You in Google Sheets
    • A script / automation (Apps Script, Make, Zapier, etc.)
      those can step on each other. Glide writes, then your script overwrites one second later with an older value, so Glide looks out of sync even though it just got reverted by Sheets.

    Quick test:

    • Pick one “bad” column.
    • For 10–15 minutes, only edit it in Glide, not in Sheets.
    • See if it still goes stale.
      If the issue disappears, you’ve got a conflicting writer somewhere.
  2. Formulas in the same column that Glide writes
    Glide really prefers:

    • “Raw” database columns handled by Glide, or
    • Formula-only columns handled by Sheets, but not both in the same place.

    If you have formulas that occasionally regenerate or clear data in a column that Glide also writes to, randomness follows.
    Pattern I’ve seen a lot:

    • Glide writes a value.
    • Some formula like =IF(A2<>'', something, '') recalcs and temporarily wipes the cell.
    • Glide syncs during that tiny window and now thinks the data is blank.
      If you need logic, move it to:
    • A dedicated formula column in Sheets, and
    • Use that column in Glide, leaving the original one as either formula-only or Glide-only.
  3. Mixed data in “key” or relation columns
    I actually disagree a bit with the idea that Glide just “keeps old types” and that’s it. The bigger killer is mixing types in columns used for relations / RowID / keys:

    • Some values are numbers, some are text strings.
    • Some look like emails but occasionally have extra labels like 'John <john@email.com>'.

    Glide treats them as strings, but Google might coerce them differently at different times. Then relations sometimes resolve and sometimes not, which looks like stale data.
    Fix: normalize your key columns:

    • All text, no blanks where a key is expected.
    • No extra spaces, no different formats for “the same” ID.
      Once keys are consistent, “random” stale fields often vanish.
  4. App caching & user-side behavior
    On mobile especially, users may be looking at a cached copy of the app for a long time:

    • Open app in bad network
    • Data loads partially
    • User never fully kills the app
      When you test on desktop, everything looks fine; on their phone, it’s stuck in the old session.

    Try:

    • Logging out / in on the device with problems.
    • Fully closing the app or browser tab, then reopening.
    • For public apps, add a temporary “Last sync timestamp” value somewhere in your sheet and display it in-app so you can see if they’re seeing recent or old data.
  5. Overuse of complex computed columns in Glide itself
    While @caminantenocturno covered computed columns generally, there’s another nuance: large chains of computed columns feeding each other can lag, especially with:

    • Nested If-Then-Else
    • Multiple template + relation + lookup combos
      On big tables, Glide might “eventually” compute everything, but your front-end shows partially updated values for a bit, which feels random.
      Try simplifying:
    • Collapse multi-step logic where possible.
    • Move some logic into Sheets or consolidate into fewer computed columns.
    • For testing, create a “minimal” screen reading directly from raw columns and see if the problem persists there.
  6. Navigation using stale screen data
    One subtle trap: if you have a screen that’s attached to a single row and users rarely leave that screen, they might be seeing an old snapshot of that row. Glide’s pretty good at live updates, but certain older or complex layouts do not always re-evaluate everything when underlying data changes.

    Things to test:

    • Switch the layout to a simple details screen temporarily and see if it behaves better.
    • Add a small component tied to a value that always changes (like a manually-updated test timestamp) to see if it stays in sync on that screen.

If you’re up for sharing specifics, the most useful details would be:

  • Which columns are written by users vs formulas vs scripts.
  • Which of the problematic columns are used in relations, filters or visibility conditions.
  • Whether the “wrong” value in Glide is an old value, an empty value, or a different row’s value.

That pattern usually screams the real root cause much louder than the symptoms.