{"record":{"id":"49bf58c897a95083","repo":"thanos-io/thanos","slug":"unsupported-retrieval-strategy-s","errorCode":null,"errorMessage":"unsupported retrieval strategy %s","messagePattern":"unsupported retrieval strategy (.+?)","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/store/proxy_merge.go","lineNumber":652,"sourceCode":"\t\t\temptyStreamResponses,\n\t\t\tlazyRetrievalMaxBufferedResponses,\n\t\t\treportStatsFn,\n\t\t), nil\n\tcase EagerRetrieval:\n\t\treturn newEagerRespSet(\n\t\t\tframeTimeout,\n\t\t\tst.String(),\n\t\t\tst.LabelSets(),\n\t\t\tcancel,\n\t\t\tcl,\n\t\t\tshardMatcher,\n\t\t\tapplySharding,\n\t\t\temptyStreamResponses,\n\t\t\tlabelsToRemove,\n\t\t\treportStatsFn,\n\t\t), nil\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unsupported retrieval strategy %s\", retrievalStrategy))\n\t}\n}\n\n// eagerRespSet is a SeriesSet that blocks until all data is retrieved from\n// the StoreAPI.\n// NOTE(bwplotka): It also resorts the series (and emits warning) if the client.SupportsWithoutReplicaLabels() is false.\ntype eagerRespSet struct {\n\t// Generic parameters.\n\tcl           storepb.Store_SeriesClient\n\tcloseSeries  context.CancelFunc\n\tframeTimeout time.Duration\n\n\tshardMatcher *storepb.ShardMatcher\n\tremoveLabels map[string]struct{}\n\n\tstoreName      string\n\tstoreLabels    map[string]struct{}\n\tstoreLabelSets []labels.Labels","sourceCodeStart":634,"sourceCodeEnd":670,"githubUrl":"https://github.com/thanos-io/thanos/blob/35b8b991177def87ed52dcf10f9b6d87f07282c8/pkg/store/proxy_merge.go#L634-L670","documentation":"A guard panic in newAsyncRespSet: the requested retrieval strategy constant is neither LazyRetrieval nor EagerRetrieval. This can only happen from programmer error or an incompatible binary mixing enum values, never from user input or store data.","triggerScenarios":"Thrown at pkg/store/proxy_merge.go:652 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the retrieval strategy passed to newAsyncRespSet comes from the defined RetrievalStrategy constants","Rebuild/align all Thanos components to the same version if enums were changed"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"35b8b991177def87ed52dcf10f9b6d87f07282c8","analyzedAt":"2026-09-07T01:49:59.689Z","contentChangedAt":"2026-09-07T01:49:59.689Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}