Summary
A run in which every dataset failed still reports success and exits 0. A scheduled indexer that loses access to its data source reports green indefinitely while indexing nothing.
Observed
search-indexer:0.6.0, one dataset selected, Docker socket unreachable so the QLever import could not start:
- Selecting datasets
✔ Selected datasets: found 1 dataset in 595ms
Dataset https://id.drapo.nl/dataset/drapo-schemaorg
✔ Data dump https://data.drapo.nl/dataset/schemaorg.export.trig (HTTP 200)
- Importing…
✖ Import failed: connect EACCES /var/run/docker.sock
✖ Skipped: No SPARQL endpoint or importable data dump available
Pipeline completed in 2m 0.6s
echo $? → 0. The failure is visible in the log and invisible to anything watching the exit code.
Not a data-loss bug
InPlaceRebuild already declines to sweep a failed dataset (“its output is incomplete, and the next successful run reconciles”), so nothing is deleted. This is purely about the run's own verdict.
Suggested direction
Exit non-zero when no selected dataset produced output. Per-dataset tolerance is right – one failure among many should not fail the run – but all of them failing is indistinguishable from a broken deployment, and “completed” overstates it.
Worth deciding alongside the adjacent note in #697, on a selection that fails or returns empty.
Summary
A run in which every dataset failed still reports success and exits
0. A scheduled indexer that loses access to its data source reports green indefinitely while indexing nothing.Observed
search-indexer:0.6.0, one dataset selected, Docker socket unreachable so the QLever import could not start:echo $?→0. The failure is visible in the log and invisible to anything watching the exit code.Not a data-loss bug
InPlaceRebuildalready declines to sweep a failed dataset (“its output is incomplete, and the next successful run reconciles”), so nothing is deleted. This is purely about the run's own verdict.Suggested direction
Exit non-zero when no selected dataset produced output. Per-dataset tolerance is right – one failure among many should not fail the run – but all of them failing is indistinguishable from a broken deployment, and “completed” overstates it.
Worth deciding alongside the adjacent note in #697, on a selection that fails or returns empty.