JuliusBrussee/caveman · error

zstd reader: %w

Error message

zstd reader: %w

What it means

Error "zstd reader: %w" thrown in JuliusBrussee/caveman.

Source

Thrown at shared/platform/objectstore/compress.go:102

			return nil, fmt.Errorf("gzip read: %w", err)
		}
		if int64(len(out)) > maxBytes {
			return nil, ErrDecompressedTooLarge
		}
		return out, nil
	case CompressionZstd:
		// Zstd's smallest legal window is 1 KiB. Keep that parser minimum for
		// tiny valid payloads, then independently enforce the exact byte limit.
		memoryLimit := uint64(maxBytes)
		if memoryLimit < zstd.MinWindowSize {
			memoryLimit = zstd.MinWindowSize
		}
		zr, err := zstd.NewReader(nil,
			zstd.WithDecoderConcurrency(1),
			zstd.WithDecoderMaxMemory(memoryLimit),
		)
		if err != nil {
			return nil, fmt.Errorf("zstd reader: %w", err)
		}
		defer zr.Close()
		out, err := zr.DecodeAll(data, nil)
		if err != nil {
			if errors.Is(err, zstd.ErrDecoderSizeExceeded) || errors.Is(err, zstd.ErrWindowSizeExceeded) {
				return nil, ErrDecompressedTooLarge
			}
			return nil, fmt.Errorf("zstd read: %w", err)
		}
		if int64(len(out)) > maxBytes {
			return nil, ErrDecompressedTooLarge
		}
		return out, nil
	default:
		return nil, fmt.Errorf("unknown compression codec %q", codec)
	}
}

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. The zstd stream is invalid; provide valid zstd data.

When it happens

Trigger: Thrown at shared/platform/objectstore/compress.go:102 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15). Data as JSON: /api/errors/23ddc6324b6e856e. Report an issue: GitHub.