I’ve been noticing that on each deployment of umbracoVersion updates, having done 17.4.0, 17.4.1 and 17.4.2 deployments since friday last week.
That each deployment the backoffice workspaces are blank with console errors logging 404’s for manangement api endpoints.
A hard reset, or cache purge in the browser seems to fix things.
I had conicidentally seen cloudflare increase it’s cached files percentages, so thought that could be related (now have a cache rule to ignore the /umbraco/* urls..)
However, just observed it running locally when updating to uForms 17.3.2 as well as (umb 17.4.2) that first run the workspaces are blank…
opening developer tools and setting cache disabled on the network tab again sorted the issue.
It seems to suggest that the entrypoint js is cached, and so refereing to now none existent hashed manifests?
With smidge gone.. (which used to add a cachebusting querystring param based on the umbracoversion for the backoffice bundles) I know we now have lit compiling with a hash when it thinks files have changed (I believe based on a file contents hash) However I only see that for bundled manifests and associated files.. the entrypoint being set in the package-json doesn’t get the same treatment..
Are we missing a trick in the backoffice for core packages/ HQ extensions etc.. that also means we aren’t cache busting packages between versions?
eg the recommendation from Kevin Jumps Battle scared developers guide springs to mind..
Battle scarred developer’s guide to Umbraco v17 - Setup - DEV Community
(see below for code sample to add a cache busting version)
Before I start digging any deeper is anyone else seeing this? Or have workarounds?
(ps the CI/CD deployments include adding app-offline.htm file so the instances are forced to recycle, though seeing it locally after a stop and rebuild cycle suggests something cache wise is occuring)
public Task<IEnumerable<PackageManifest>> ReadPackageManifestsAsync()
{
var version = Assembly.GetAssembly(typeof(DoStuffPackageManifestReader))?
.GetName()
.Version?.ToString() ?? "1.0.0";
return Task.FromResult<IEnumerable<PackageManifest>>(new[]
{
new PackageManifest
{
Id = "DoStuff.Client",
Name = "DoStuff with Umbraco client",
AllowTelemetry = true,
Version = version,
Extensions = [
new {
name = "DoStuff Client Bundle",
alias = "DoStuff.Client.Bundle",
type = "bundle",
js = "/App_Plugins/DoStuffClient/do-stuff-client.js?v=" + version
}
]
}
});
}

