Shell.nix stopped working: problem unpacking archive

I have an ancient shell.nix which provides the environment for some project, via direnv.

I haven’t modified the nix parts of this project for many months, but started fiddling with it today. Then I wanted to return to getting on with real work, so I checked out the old version, and it fails thus

> nix log /nix/store/s6lk5649k4k370v2x2y34rb65r77if2s-nvidia-530.41.03.drv

@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking sources
tail: error writing 'standard output': Broken pipe
Creating directory NVIDIA-Linux-x86_64-530.41.03
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 530.41.03/nix/store/ line 729: /build/makeself.2eUHVgve/zstd: No such file or directory
tail: error writing 'standard output': Broken pipe
/nix/store/ line 720: /dev/tty: No such device or address

xz: (stdin): File format not recognized
tar: tail: This does not look like a tar archive
error writing 'standard output': Broken pipe
tar: Exiting with failure status due to previous errors

However, the failure only appears on my local development machine. Everything still works fine on compute servers where I deploy this code and, crucially, on a fresh CI run, where there is no danger of some old download being cached in the nix store.

The shell.nix tries to pin down everything it uses with specific commit versions, and I haven’t run nix-collect-garbage since this morning, when it worked absolutely fine, so I am surprised that it doesn’t get everything it needs from the nix store.

So I’m left staring at the ‘Broken pipe’ in the error message and am drawing a huge blank.

How can I get unstuck?

Looks like the file was corrupted to me, try the repair features on the store path of the tarball that’s being extracted, or maybe explicitly remove it and let it be re-fetched?

If that does solve it, maybe it’s time for an fsck?

Where can I find the store path of the tarball?