We hit this in Chromium builds where the PDB file was just under 4GB, but the stream directory was actually too large to be correctly represented.
llvm-pdbutil would error about this in llvm::msf::validateSuperBlock, but lld should not write such PDB files in the first place.
Just a nit: How does the errors look like in stderr? I wonder if we shouldn't use joinErrors to have both errors contiguous on a single line?