thanos-io/thanos · error
finalize
Error message
finalize
What it means
Wraps merr.Err in streamedBlockWriter.Close after index, chunk, and meta files were written: one or more of the accumulated writer Close() calls failed, so although the block looks complete on disk it cannot be trusted and finalization is reported as failed.
Solutions
- Inspect the wrapped MultiError to find which closer (index/chunks/meta) failed.
- Check disk space and file descriptors for the block directory.
- Delete the partial block and re-run downsampling.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at pkg/compact/downsample/streamed_block_writer.go:173 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of thanos-io/thanos@35b8b99117 (2026-09-07).
Data as JSON: /api/errors/dad7bfa7df465d84.
Report an issue: GitHub.
Appendix: source
Thrown at pkg/compact/downsample/streamed_block_writer.go:173
return merr.Err()
}
// Finalize saves prepared index and metadata to corresponding files.
for _, cl := range w.closers {
merr.Add(cl.Close())
}
if err := w.writeMetaFile(); err != nil {
return errors.Wrap(err, "write meta meta")
}
if err := w.syncDir(); err != nil {
return errors.Wrap(err, "sync blockDir")
}
if err := merr.Err(); err != nil {
return errors.Wrap(err, "finalize")
}
// No error, claim success.
level.Info(w.logger).Log(
"msg", "finalized downsampled block",
"mint", w.meta.MinTime,
"maxt", w.meta.MaxTime,
"ulid", w.meta.ULID,
"resolution", w.meta.Thanos.Downsample.Resolution,
)
return nil
}
// syncDir syncs blockDir on disk.
func (w *streamedBlockWriter) syncDir() (err error) {
df, err := fileutil.OpenDir(w.blockDir)
if err != nil {View on GitHub (pinned to 35b8b99117)