cosmetic: restore and verify of an unknown snapshot ID report "object not found" on a hashed path #426

Closed
opened 2026-11-11 01:01:47 +01:00 by clawbot · 2 comments
Collaborator

Found by the acceptance test (#418).

Steps to reproduce

  • vaultik snapshot restore host1_home_2026-01-01T00:00:00Z /home/user/restore with an ID that no snapshot has.
  • vaultik snapshot verify host1_home_2026-01-01T00:00:00Z.

What happened

Restore: downloading snapshot database: downloading metadata/f14b688d.../db.zst.age: get "metadata/f14b688d.../db.zst.age": object not found. Verify first prints Verifying snapshot host1_home_2026-01-01T00:00:00Z and Snapshot time: 2026-01-01 00:00:00 UTC (parsed from the argument), then fails with downloading manifest: get "metadata/.../manifest.json.zst": object not found. snapshot remove with the same ID says snapshot not found in the local index or on the destination store, which is the right message.

What should happen

Both commands say that no snapshot with that ID exists in the local index or at the destination, as snapshot remove does, and verify prints nothing about a snapshot it has not found.

Model: fable-5-1

Found by the acceptance test (https://git.eeqj.de/sneak/vaultik/issues/418). **Steps to reproduce** - `vaultik snapshot restore host1_home_2026-01-01T00:00:00Z /home/user/restore` with an ID that no snapshot has. - `vaultik snapshot verify host1_home_2026-01-01T00:00:00Z`. **What happened** Restore: `downloading snapshot database: downloading metadata/f14b688d.../db.zst.age: get "metadata/f14b688d.../db.zst.age": object not found`. Verify first prints `Verifying snapshot host1_home_2026-01-01T00:00:00Z` and `Snapshot time: 2026-01-01 00:00:00 UTC` (parsed from the argument), then fails with `downloading manifest: get "metadata/.../manifest.json.zst": object not found`. `snapshot remove` with the same ID says `snapshot not found in the local index or on the destination store`, which is the right message. **What should happen** Both commands say that no snapshot with that ID exists in the local index or at the destination, as `snapshot remove` does, and verify prints nothing about a snapshot it has not found. Model: fable-5-1
Author
Collaborator

Plan: snapshot restore and snapshot verify given an ID that is in neither the local index nor the destination say that no snapshot with that ID exists, in the same words snapshot remove uses, and print nothing else about it.

Package: internal/vaultik.

For every unit from the acceptance test

  • One branch off current next, one PR with base next, labelled needs-review and assigned to clawbot. The title ends (closes #N).
  • Add nothing to docs/TODO.md. sneak ruled on 11 November that it is not a history document (#440).
  • README.md on next: change only a sentence the fix makes false. The rewritten README in #399 is with sneak and is updated after this merges.
  • A test that fails on current next shows the fix. Run make fmt and make check before the final push.

Model: opus-5-5

Plan: `snapshot restore` and `snapshot verify` given an ID that is in neither the local index nor the destination say that no snapshot with that ID exists, in the same words `snapshot remove` uses, and print nothing else about it. Package: `internal/vaultik`. **For every unit from the acceptance test** - One branch off current `next`, one PR with base `next`, labelled `needs-review` and assigned to `clawbot`. The title ends `(closes #N)`. - Add nothing to `docs/TODO.md`. sneak ruled on 11 November that it is not a history document (https://git.eeqj.de/sneak/vaultik/issues/440). - `README.md` on `next`: change only a sentence the fix makes false. The rewritten README in https://git.eeqj.de/sneak/vaultik/pulls/399 is with sneak and is updated after this merges. - A test that fails on current `next` shows the fix. Run `make fmt` and `make check` before the final push. Model: opus-5-5
clawbot self-assigned this 2026-11-11 01:21:28 +01:00
Author
Collaborator

Built in #446. Restore, verify and deep verify look up a snapshot ID the way snapshot remove does, before printing or downloading anything. An unknown ID fails with snapshot not found in the local index or on the destination store: <id>. README unchanged: no sentence in it became false.

Judgement call: for an ID not in the local index, restore and verify now list metadata/<key>/ on the destination first, so credentials that cannot list objects fail there.

Model: opus-5-5

Built in https://git.eeqj.de/sneak/vaultik/pulls/446. Restore, verify and deep verify look up a snapshot ID the way `snapshot remove` does, before printing or downloading anything. An unknown ID fails with `snapshot not found in the local index or on the destination store: <id>`. README unchanged: no sentence in it became false. Judgement call: for an ID not in the local index, restore and verify now list `metadata/<key>/` on the destination first, so credentials that cannot list objects fail there. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/vaultik#426