{"record":{"id":"cad49ef5a63f3ba3","repo":"thanos-io/thanos","slug":"not-supported-marker-v","errorCode":null,"errorMessage":"not supported marker %v","messagePattern":"not supported marker (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/thanos/tools_bucket.go","lineNumber":1151,"sourceCode":"\t\t\t\t\t\treturn errors.Wrapf(err, \"remove mark %v for %v\", id, tbc.marker)\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tswitch tbc.marker {\n\t\t\t\tcase metadata.DeletionMarkFilename:\n\t\t\t\t\tif err := block.MarkForDeletion(ctx, logger, insBkt, id, tbc.details, promauto.With(nil).NewCounter(prometheus.CounterOpts{})); err != nil {\n\t\t\t\t\t\treturn errors.Wrapf(err, \"mark %v for %v\", id, tbc.marker)\n\t\t\t\t\t}\n\t\t\t\tcase metadata.NoCompactMarkFilename:\n\t\t\t\t\tif err := block.MarkForNoCompact(ctx, logger, insBkt, id, metadata.ManualNoCompactReason, tbc.details, promauto.With(nil).NewCounter(prometheus.CounterOpts{})); err != nil {\n\t\t\t\t\t\treturn errors.Wrapf(err, \"mark %v for %v\", id, tbc.marker)\n\t\t\t\t\t}\n\t\t\t\tcase metadata.NoDownsampleMarkFilename:\n\t\t\t\t\tif err := block.MarkForNoDownsample(ctx, logger, insBkt, id, metadata.ManualNoDownsampleReason, tbc.details, promauto.With(nil).NewCounter(prometheus.CounterOpts{})); err != nil {\n\t\t\t\t\t\treturn errors.Wrapf(err, \"mark %v for %v\", id, tbc.marker)\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\treturn errors.Errorf(\"not supported marker %v\", tbc.marker)\n\t\t\t\t}\n\t\t\t}\n\t\t\tlevel.Info(logger).Log(\"msg\", \"marking done\", \"marker\", tbc.marker, \"IDs\", strings.Join(tbc.blockIDs, \",\"))\n\t\t\treturn nil\n\t\t}, func(err error) {\n\t\t\tcancel()\n\t\t})\n\t\treturn nil\n\t})\n}\n\nfunc registerBucketRewrite(app extkingpin.AppClause, objStoreConfig *extflag.PathOrContent) {\n\tcmd := app.Command(component.Rewrite.String(), \"Rewrite chosen blocks in the bucket, while deleting or modifying series \"+\n\t\t\"Resulted block has modified stats in meta.json. Additionally compaction.sources are altered to not confuse readers of meta.json. \"+\n\t\t\"Instead thanos.rewrite section is added with useful info like old sources and deletion requests. \"+\n\t\t\"NOTE: It's recommended to turn off compactor while doing this operation. If the compactor is running and touching exactly same block that \"+\n\t\t\"is being rewritten, the resulted rewritten block might only cause overlap (mitigated by marking overlapping block manually for deletion) \"+\n\t\t\"and the data you wanted to rewrite could already part of bigger block.\\n\\n\"+","sourceCodeStart":1133,"sourceCodeEnd":1169,"githubUrl":"https://github.com/thanos-io/thanos/blob/35b8b991177def87ed52dcf10f9b6d87f07282c8/cmd/thanos/tools_bucket.go#L1133-L1169","documentation":"A switch-default guard in the mark-block command: tbc.marker (from the --marker flag) names a mark file type other than deletion-mark.json or no-compact-mark.json, so the tool has no marking routine for it. Pure input-validation failure on the flag value.","triggerScenarios":"Thrown at cmd/thanos/tools_bucket.go:1151 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use one of: deletion-mark.json, no-compact-mark.json, no-downsample-mark.json","Check the --marker flag for typos"],"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"}