Invalidate Meteor Dynamic Import Cache

Recently, I had some issues with Meteor’s IndexedDB cache.

I made a bug fix and built the Docker image and tested locally. It worked just fine. I then deployed that same image to our dev server and tested there. Again, it worked just fine. Finally I deployed that image to prod, and it didn’t work there. Based on our healtcheck, and a console.log I threw in, I should have been using the new code I deployed. Finally, I thought to try it in Firefox (I had been using Chrome), and it worked great.

It took a while to realize it, but I figured it had to be caching some individual modules from the dynamic imports. In Chrome, I found the IndexedDB and cleared that and reloaded the page. Now my bug fix worked great Chrome.

I guess I few questions:
1.) Does this seem reasonable that it could have happened? It seems a bit scary that I was using a mix of some new and some old code. It creates some unpredictable behavior in the app across browsers and could be affecting users.
2.) Is there a way to prevent this? Someway to invalidate the IndexedDB when I deploy a new version?

Thank you.

1 Like