Hey everyone, I’m working on a Bubble app where I have a repeating group that displays a schedule (e.g., meetings). I’ve set up a “Sync” button that triggers a backend workflow, which fetches updated schedule data (including new, updated, or removed entries) and syncs it into the Bubble database.
The backend workflow works fine in terms of updating the data, but the repeating group doesn’t always reflect the changes immediately and users complain and sometimes keep refreshing once the cooldown finishes. Sometimes it updates right away, and other times I have to manually refresh the page to see the new data AND THAT SUCKS PEOPLE GET MAD AT ME! . It seems inconsistent, possibly based on user load or caching or the repeating group just doesn’t want to update with the new db? In the repeating group there’s a number of lookups as well so it might struggle to get them all updated?
Is there a reliable way to force the repeating group to refresh from the database (not from local cache) once the backend workflow finishes or after a short delay?
Any best practices or workarounds to ensure the UI reflects the latest synced data would be much appreciated.
Thanks!
Any bubble brothers or sisters can help me with suggestions?
I can bet my left nut that @tylerboodman or @georgecollier have felt this and know the exact solutions if they don’t then there’s probably no hope
Let me see if I understand, the fetch call is to an external service, correct? My hunch is that this call is being cached by Bubble. I trip on this Bubble “feature” (air-quotes ) all the time. Add a nonce to force Bubble to actually make the call. A nonce can be :current date in iso...
Another thing to look at is your repeating group’s expression. Is the data type the same as the one you’re updating? Meaning, if the fetch writes to the data type available dates and the rg expression is also doing a search for available dates those should be updated right away. What might not be updating is if:
the fetch call is updating a different data type than the one of the rg
I am wanting to focus on this other edge case whereL
Backend Workflow Updates Instantly, But Frontend Polling Delayed by 30+ Seconds — Why Won’t Search Reflect Changes?
I’ve hit a frustrating wall with my setup and could really use some insight from the community.
My setup:
I have a Bubble page that triggers a backend workflow.
The backend workflow:
Sends an email via Postmark using inputs like To, Body, etc.
Creates or updates an Email Log object with the status of the email (e.g., “OK” or “Failed”).
I pass a reference to the Email Log object to the backend so it can update it.
This update to the log happens almost instantly (within 1–3 seconds, confirmed in the DB).
What I want:
On the frontend, I want to reflect the result to the user (e.g., show a “Successfully sent” message once the log is updated). So I:
Create the Email Log object on the frontend and pass it to the backend.
Set a status field like "polling" initially.
Use a “Do every 2 seconds” event to check if the log’s status has changed from "polling" to something like "OK".
The problem:
Despite the backend updating the log almost immediately, the frontend polling takes ~30 seconds to detect this change.
I’ve verified the DB is updated almost instantly.
I use Do a search for Email Log: first item filtered by Unique ID = X.
I even tried adding Modified Date > Current date/time - 1 hour to force a fresh query — no change.
The polling logic only breaks once the object finally updates on the frontend, sometimes after 6–10 polling cycles.
It feels like Bubble is aggressively caching the Email Log object or search results, even when I specifically filter by unique ID and use constraints designed to break cache.
My question:
Why won’t Bubble give me fresh data in a “Do a search” when I know the object is updated?
Is there any way to force a fresh DB read (not a stale cache) using standard Bubble logic?
I’d really appreciate any guidance — this is a core UX feature, and it’s incredibly frustrating to know the DB has what I need, but Bubble just won’t show it in real time.
Show a screen shot of the RG setup…could it perhaps be that the RG doens’t have a datasource set and you are relying on a ‘display list’ action to initially populate it?
You can use a return data from backend workflow to show when it finished on front end and do not need to rely on any polling