Offline cache refresh keeps a stale .NET asset list after a new dotnet.js lands #1060

Closed
opened 2026-08-13 05:59:42 +00:00 by spikerj · 1 comment
Owner

ensureDotnetResolvedUrls returns the in-memory dotnetResolvedUrls list whenever it is already set and the caller did not pass bypassDotnetManifestCache (refreshAll / refreshOne).

That means a later cached dotnet.js — including a corrupt or newly published loader — is ignored for the rest of the session. Status checks keep looking for the old hashed _framework/* names. Only preload('dotnet') (which nulls the list and bypasses the cache) picks up a new publish.

Repro: seed dotnetResolvedUrls = ['/stale.wasm'], put a valid (or corrupt) dotnet.js in Cache Storage, call refreshOne('dotnet') — parser never runs, status is scored against /stale.wasm.

Seen in projects/spikersoft/src/app/_services/offline-cache/offline-cache.service.ts.

`ensureDotnetResolvedUrls` returns the in-memory `dotnetResolvedUrls` list whenever it is already set and the caller did not pass `bypassDotnetManifestCache` (refreshAll / refreshOne). That means a later cached `dotnet.js` — including a corrupt or newly published loader — is ignored for the rest of the session. Status checks keep looking for the old hashed `_framework/*` names. Only `preload('dotnet')` (which nulls the list and bypasses the cache) picks up a new publish. Repro: seed `dotnetResolvedUrls = ['/stale.wasm']`, put a valid (or corrupt) `dotnet.js` in Cache Storage, call `refreshOne('dotnet')` — parser never runs, status is scored against `/stale.wasm`. Seen in `projects/spikersoft/src/app/_services/offline-cache/offline-cache.service.ts`.
Author
Owner

Resolved in spikersoft-angular PR #819 (merged to master). Offline cache refresh replaces a stale .NET asset list when a new dotnet.js lands. Closing.

Resolved in spikersoft-angular [PR #819](https://git.spikersoft.com/spikerj/spikersoft-angular/pulls/819) (merged to `master`). Offline cache refresh replaces a stale .NET asset list when a new dotnet.js lands. Closing.
Sign in to join this conversation.