thanos-io/thanos · error

write meta meta

Error message

write meta meta

What it means

errors.Wrap around writeMetaFile failure in streamedBlockWriter.Close: persisting the final meta.json for the downsampled block failed (I/O error, missing dir, permissions), so the block is not usable.

Solutions

  1. Inspect the wrapped writeMetaFile error for the underlying cause (disk full, permissions).
  2. Ensure the block directory exists and is writable before Close.
  3. Retry the downsampling run; delete the failed block.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at pkg/compact/downsample/streamed_block_writer.go:165 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/b78f67881ec3c787. Report an issue: GitHub.

Appendix: source

Thrown at pkg/compact/downsample/streamed_block_writer.go:165

	merr := errutil.MultiError{}

	if w.ignoreFinalize {
		// Close open file descriptors anyway.
		for _, cl := range w.closers {
			merr.Add(cl.Close())
		}
		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,

View on GitHub (pinned to 35b8b99117)