Let me explain more in detail the special situation with NodeJS and PWA caching.
In NodeJS and its templating support, we introduced the so called partial refresh for a view.
So instead of loading the full page only the content view is loaded in a hybrid refreshing approach.
So guarantee that and the full page (for full browser refresh or SEO) as well only the view can be loaded, we have a smart routing solution. It detects based on accept header what content is required and set it out. While the URL stays the same.
So if a browser ask the page url with accept text/html - full page is returned.
While our App Connect when fetching the content view only asks the same URL but with accept html/fragment - only the partial fragment is returned.
However they both live under the same url. So if you are checking the url only under the PWA cache they will overwrite each other.
And this is solved by comparing the whole request - ie including the accept headers - for the cache entries.
So by doing the fix above as Patrick suggestion you are solving your issue.
But if you do want to cache both full page and the partial - you might have a problem with the current PAW service worker code.
This is because each cache storage only contains unique URL’s and you can’t have twice the same url.
But this can be solved by using two different cache storages - one for the full and one for the partials.
it all depends on how you exactly you plan to use the dynamic cache.
Hope it is all a bit clearer now