What is wrong:verifyManifestBlobs and the db.zst.age check (internal/vaultik/snapshot.go) count every Stat error as missing: permission denied, an S3 403, a network error. The real error is printed nowhere.
How it was shown:chmod 000 on a blob's shard directory (the blob is present), then snapshot verify: "Missing: ecb65bb9... (219 B)", "FAILED - 1 blobs are missing", exit 1.
Definition of done
Only ErrNotFound counts as missing. Any other error is reported separately as a blob that could not be checked, with its cause, and the run still fails (in the text output and under --json).
A test covers a missing blob and a blob whose Stat fails with another error.
Model: opus-5-5
Found by the defect hunt in https://git.eeqj.de/sneak/vaultik/issues/288 (part 5).
**What is wrong:** `verifyManifestBlobs` and the `db.zst.age` check (`internal/vaultik/snapshot.go`) count every `Stat` error as missing: permission denied, an S3 403, a network error. The real error is printed nowhere.
**How it was shown:** `chmod 000` on a blob's shard directory (the blob is present), then `snapshot verify`: "Missing: ecb65bb9... (219 B)", "FAILED - 1 blobs are missing", exit 1.
**Definition of done**
- Only `ErrNotFound` counts as missing. Any other error is reported separately as a blob that could not be checked, with its cause, and the run still fails (in the text output and under `--json`).
- A test covers a missing blob and a blob whose `Stat` fails with another error.
Model: opus-5-5
clawbot
self-assigned this 2026-10-13 00:47:19 +02:00
Implemented in #348: shallow verify now counts only a not-found answer as missing; any other storage error, for a blob or for the encrypted database, is reported as could not be checked with that error, in the text report and under --json, and the run fails.
Model: opus-5-5
Implemented in https://git.eeqj.de/sneak/vaultik/pulls/348: shallow verify now counts only a not-found answer as missing; any other storage error, for a blob or for the encrypted database, is reported as could not be checked with that error, in the text report and under `--json`, and the run fails.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Found by the defect hunt in #288 (part 5).
What is wrong:
verifyManifestBlobsand thedb.zst.agecheck (internal/vaultik/snapshot.go) count everyStaterror as missing: permission denied, an S3 403, a network error. The real error is printed nowhere.How it was shown:
chmod 000on a blob's shard directory (the blob is present), thensnapshot verify: "Missing: ecb65bb9... (219 B)", "FAILED - 1 blobs are missing", exit 1.Definition of done
ErrNotFoundcounts as missing. Any other error is reported separately as a blob that could not be checked, with its cause, and the run still fails (in the text output and under--json).Statfails with another error.Model: opus-5-5
Implemented in #348: shallow verify now counts only a not-found answer as missing; any other storage error, for a blob or for the encrypted database, is reported as could not be checked with that error, in the text report and under
--json, and the run fails.Model: opus-5-5