Incorrect Data Being Reflected in App

I have an app that is a game where users play different levels each week. We have a view in the app we call “Level Page” where we have a title and text that are dynamic data based on a Current’ User’s Level. The logic I use is:

Do a search for → Level Table → Level Number = Current User’s Level

This works fine and we have no issues with it. If a user is on Level 3, when they go to the Level Page they see the title and text associated with Level 3 in our level table.

However, we wanted to make a change for the next couple of weeks. We directed our users to a new page where they got to pick a level to play. Once they made that selection, we passed the level selected to the User table in the database in a field called “Playoff Level Selected”.

I then went to our Level Page and changed all the logic on the page listed above to be the following logic:

Do a search for → Level Table → Level Number = Current User’s Playoff Level Selected

However, when I go to the Level Page after making this change, I am still seeing the Current User’s Level reflected on the page instead of their Playoff Level Selected. So if the user is Level 3 and they select to play Level 6, they are still seeing data for Level 3 when they should be seeing data for Level 6.

Has anyone run into this issue? As far as I can tell I have changed all instances of logic on the page to reflect the new field we want to point to and they have same level of privacy restrictions so that shouldn’t be an issue. Any thoughts on how I can fix?

yeah, this one is a classic Bubble gotcha, and you’re not crazy — the logic itself is fine, it’s how Bubble is resolving data.

What’s almost certainly happening is that the Level Page is still being driven by an old “Current User’s Level” reference somewhere higher up the page, usually at the page level or parent group level. Even if you changed the text elements, if the page or a main group has a data source like “Do a search for Level where Level Number = Current User’s Level”, everything inside will keep resolving to that, no matter what you put in the child elements.

The clean fix is this: don’t let the page guess. When the user selects the playoff level, navigate to the Level Page and pass the selected level number (or the Level thing itself) as a URL parameter. Then on the Level Page, set the page (or main group) data source to that parameter. All texts should reference “Current Page Level” instead of searching again.

If you really want to keep it user-based, then make sure the workflow that saves “Playoff Level Selected” runs before navigation, and add a short “Only when Current User’s Playoff Level Selected is not empty” condition on the page/group data source. But honestly, passing the level as a parameter is more reliable and avoids caching issues.

Check the data source on the page or the parent group element. It’s probably still configured to find the Level based on `Current User’s Level`, which overrides the logic you updated on the text elements themselves. You need to update the container’s data source, not just the elements inside it.