processFileWithErrorHandling (internal/snapshot/scanner.go:1352-1389) aborts on a packer error and skips everything else under --skip-errors. Its own comment says "Only open and read errors are skipped below". A directory or symlink has no data to open, though: phase 2 only records it in the local index. A database error while recording one is therefore not an open or read error, yet it is skipped like one. The snapshot then completes without that entry, and a restore does not recreate the directory with its stored owner, mode and times, or does not recreate the symlink at all.
The README limits --skip-errors to files that cannot be read, and says errors that would leave the snapshot's records wrong still stop the run.
Reported by the worker on #280 and confirmed in the code on next at 79a73fa.
Definition of done
Under --skip-errors, only errors from opening or reading a file are skipped. A local index error while recording any entry stops the backup, as it does without the flag, and the code comment says so truthfully.
A test injects a database error while a directory is recorded, runs with --skip-errors, and asserts that the backup fails and the snapshot is not recorded as complete.
make check passes.
Model: opus-5-5
`processFileWithErrorHandling` (`internal/snapshot/scanner.go:1352-1389`) aborts on a packer error and skips everything else under `--skip-errors`. Its own comment says "Only open and read errors are skipped below". A directory or symlink has no data to open, though: phase 2 only records it in the local index. A database error while recording one is therefore not an open or read error, yet it is skipped like one. The snapshot then completes without that entry, and a restore does not recreate the directory with its stored owner, mode and times, or does not recreate the symlink at all.
The README limits `--skip-errors` to files that cannot be read, and says errors that would leave the snapshot's records wrong still stop the run.
Reported by the worker on https://git.eeqj.de/sneak/vaultik/issues/280 and confirmed in the code on `next` at `79a73fa`.
## Definition of done
1. Under `--skip-errors`, only errors from opening or reading a file are skipped. A local index error while recording any entry stops the backup, as it does without the flag, and the code comment says so truthfully.
2. A test injects a database error while a directory is recorded, runs with `--skip-errors`, and asserts that the backup fails and the snapshot is not recorded as complete.
3. `make check` passes.
Model: opus-5-5
clawbot
self-assigned this 2026-10-08 10:12:36 +02:00
Confirmed on next at 79a73fa with a failing test. Fixed in #285: a directory or symlink is now recorded before the --skip-errors handling, so an error recording it in the local index stops the backup.
Model: opus-5-5
Confirmed on `next` at `79a73fa` with a failing test. Fixed in https://git.eeqj.de/sneak/vaultik/pulls/285: a directory or symlink is now recorded before the `--skip-errors` handling, so an error recording it in the local index stops the backup.
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.
processFileWithErrorHandling(internal/snapshot/scanner.go:1352-1389) aborts on a packer error and skips everything else under--skip-errors. Its own comment says "Only open and read errors are skipped below". A directory or symlink has no data to open, though: phase 2 only records it in the local index. A database error while recording one is therefore not an open or read error, yet it is skipped like one. The snapshot then completes without that entry, and a restore does not recreate the directory with its stored owner, mode and times, or does not recreate the symlink at all.The README limits
--skip-errorsto files that cannot be read, and says errors that would leave the snapshot's records wrong still stop the run.Reported by the worker on #280 and confirmed in the code on
nextat79a73fa.Definition of done
--skip-errors, only errors from opening or reading a file are skipped. A local index error while recording any entry stops the backup, as it does without the flag, and the code comment says so truthfully.--skip-errors, and asserts that the backup fails and the snapshot is not recorded as complete.make checkpasses.Model: opus-5-5
Confirmed on
nextat79a73fawith a failing test. Fixed in #285: a directory or symlink is now recorded before the--skip-errorshandling, so an error recording it in the local index stops the backup.Model: opus-5-5