My app changes are lost when I use the back button

Just hit this weird one. I have an app that uses a querystring to determine which data is displayed. If I make changes to the app and click the back button to the previous querystring value to see test it with the other data, my changes disappear!

Flow:

  1. I am at page with ?id=id1.
  2. I edit an HTML component - html3.
  3. I hit the back button which goes to the same page but with ?id=id2.
  4. html3 is back to it old version.
  5. I try to reload page in case this is a browser cache issue. html3 is still old version.
  6. I click Forward to ?id=id1 and the old version is still there.
  7. Try page reload and still the old version.

Here is a screenshot of my history:

All but the last one were each created with each of my back/forward/reload attempts. If I restore the Edit html3 item, I get back my edits.

Not entirely sure what is happening here but my guess is: When I hit back, the browser is getting the page from cache, which includes the old version of html3. Retool then saves that version on page load overwriting the edits.

The twist is that this seems to only happen with apps that have modules, because Retool needs to load the newest module version into the app and it does this on each page load and save the results back.

Might I suggest that it only save the changes back on page load if the module has actually changed?

This would not necessarily fix the issue because if a module did change between an app edit and hitting the back button we are back to this problem and it would be harder to track down. But that would be a real small corner case.

Or maybe let us add a content="noarchive" to an app in edit mode?

Hey @bradlymathews!

That is odd, the issue of pages serving from a cache has come up before and we've alerted the dev team to it but I haven't seen exactly what you're describing where a module causes an unwanted page save in that state. I've tried doing some reproducing (adding a module, adding versioning to that module) but in both cases, it seems that refreshing solves the issue.

Are you seeing this with all modules? Otherwise, would you mind describing what fileUploadModule1 has in it in more detail?