thanos-io/thanos · error

proto: wrong wireType =

Error message

proto: wrong wireType = %d for field Data

What it means

Hand-written protobuf unmarshalling of Chunk: field 2 (Data, the raw chunk bytes) arrived with a wire type other than length-delimited (2). The dAtA payload is corrupted or was produced by an incompatible encoder, so the chunk payload cannot be trusted.

Solutions

  1. Discard and re-fetch the affected chunk
  2. Run bucket verification on the source block
  3. Check for encoding/version mismatch between components
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/store/storepb/custom.go:635 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/0d7708acc02080f6. Report an issue: GitHub.

Appendix: source

Thrown at pkg/store/storepb/custom.go:635

			}
			m.Type = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowTypes
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Type |= Chunk_Encoding(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowTypes
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthTypes

View on GitHub (pinned to 35b8b99117)