thanos-io/thanos · error

group

Error message

group %s

What it means

Compacting a specific group failed with an error other than the handled out-of-order-chunks case; the error is tagged with the group key and sent to errChan, failing the compaction run for that cycle.

Solutions

  1. Read the wrapped group error for the root cause
  2. Check for corrupt blocks in the group
  3. Re-run compaction after fixing the issue
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at pkg/compact/compact.go:1558 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/3b3fdc8400a51665. Report an issue: GitHub.

Appendix: source

Thrown at pkg/compact/compact.go:1558

					}
					// If block has out of order chunk and it has been configured to skip it,
					// then we can mark the block for no compaction so that the next compaction run
					// will skip it.
					if IsOutOfOrderChunkError(err) && c.skipBlocksWithOutOfOrderChunks {
						if err := block.MarkForNoCompact(
							ctx,
							c.logger,
							c.bkt,
							err.(OutOfOrderChunksError).id,
							metadata.OutOfOrderChunksNoCompactReason,
							"OutofOrderChunk: marking block with out-of-order series/chunks to as no compact to unblock compaction", g.blocksMarkedForNoCompact); err == nil {
							mtx.Lock()
							finishedAllGroups = false
							mtx.Unlock()
							continue
						}
					}
					errChan <- errors.Wrapf(err, "group %s", g.Key())
					return
				}
			})
		}

		// Blocks that were compacted are garbage collected after each Compaction.
		// However if compactor crashes we need to resolve those on startup.
		level.Info(c.logger).Log("msg", "start initial sync of metas")
		if err := c.sy.SyncMetas(ctx); err != nil {
			return errors.Wrap(err, "sync")
		}

		var ignoreBlocks map[ulid.ULID]struct{}
		if c.blocksCleaner != nil {
			deletedBlocks, err := c.blocksCleaner.DeleteMarkedBlocks(ctx)
			if err != nil {
				return errors.Wrap(err, "cleaning marked blocks")
			}

View on GitHub (pinned to 35b8b99117)