After 4.12 Update "failed to register layer: error creating overlay mount" "too many levels of symbolic links"

I updated to 4.12.0 & afterwards Portainer would fail to update a stack I was using. Looking up errors & trying to find solutions led to me deleting the images from that stack & redeploying it, which still failed. then I tried just pulling 1 of the containers but that gave me a failure as well with a "failed to register layer: error creating overlay mount"... ..."too many levels of symbolic links" error. I tried pulling other containers & some would work, other would fail with the same error.

Trying to do the troubleshooting I used the "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" check & got back a number of errors

  • [FAIL] DD0014: are the backend processes running? 1 error occurred: * vpnkit.exe is not running"
  • [FAIL] DD0012: is the VM networking working? network checks failed: failed to ping host: exit status 1
[2022-09-10T14:40:53.093857700Z][com.docker.diagnose.exe][I] ipc.NewClient: ████████-diagnose-network -> \\.\pipe\dockerDiagnosticd diagnosticsd
[       common/pkg/diagkit/gather/diagnose/network.go:34 +0xd9
[       common/pkg/diagkit/gather/diagnose/test.go:46 +0x43
[       common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a
[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0x2?, 0x1d032a0)
[       common/pkg/diagkit/gather/diagnose/run.go:140 +0x77
[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1d032a0, 0xc000223728)
[       common/pkg/diagkit/gather/diagnose/run.go:146 +0x36
[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0xcb?, 0xc000223728)
[       common/pkg/diagkit/gather/diagnose/run.go:149 +0x73
[common/pkg/diagkit/gather/diagnose.walkOnce(0x1692340?, 0xc0002ef890)
[       common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc
[common/pkg/diagkit/gather/diagnose.Run(0x1d038a0, 0xee48534200000010?, {0xc0002efb20, 0x1, 0x1})
[       common/pkg/diagkit/gather/diagnose/run.go:16 +0x1d4
[main.checkCmd({0xc0000703d0?, 0xc0000703d0?, 0x4?}, {0x0, 0x0})
[       common/cmd/com.docker.diagnose/main.go:133 +0x105
[       common/cmd/com.docker.diagnose/main.go:99 +0x287
[2022-09-10T14:40:53.094870900Z][com.docker.diagnose.exe][I] (f3218053) 846a548a-diagnose-network C->S diagnosticsd POST /check-network-connectivity: {"ips":["#MY.LOCAL.IP#","","","","","",""]}
[2022-09-10T14:40:53.633412000Z][com.docker.diagnose.exe][W] (f3218053) ████████-diagnose-network C<-S ████████-diagnosticsd POST /check-network-connectivity (538.4556ms): failed to ping host: exit status 1
  • [FAIL] DD0032: do Docker networks overlap with host IPs? network bridge has subnet which overlaps with host IP, but if I restart it says a different container is causing that problem each time.

I have now completely started from scratch, with a fresh install after I removed the VPN software that I rarely use, completely purged & reestablished the network drivers, even removed the WSL2 update, restarted & reinstalled it.
I went through the whole
dism /online /cleanup-image /checkhealth,
dism /online /cleanup-image /scanhealth,
dism /online /cleanup-image /restorehealth,
CHKDSK /f /r c:,
netsh winsock reset,
netsh int IP reset,
ipconfig /renew,
ipconfig /flushdns,
& even netcfg -d

But no matter what I do I always get Failures from the Docker Diagnostics
*** vpnkit.exe is not running** is one that I get every single time & looking into it it looks like the vpnkit.exe binary isn’t bundled into the Installer & hasn’t been at least since 4.10.

What am I doing wrong?