{"record":{"id":"fdfa3b641e380b33","repo":"VictoriaMetrics/VictoriaMetrics","slug":"missing-target-label-for-action-dropequal","errorCode":null,"errorMessage":"missing `target_label` for `action=dropequal`","messagePattern":"missing `target_label` for `action=dropequal`","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"lib/promrelabel/config.go","lineNumber":340,"sourceCode":"\t\tif len(sourceLabels) < 2 {\n\t\t\treturn nil, fmt.Errorf(\"`source_labels` must contain at least two entries for `action=drop_if_equal`; got %q\", sourceLabels)\n\t\t}\n\t\tif targetLabel != \"\" {\n\t\t\treturn nil, fmt.Errorf(\"`target_label` cannot be used for `action=drop_if_equal`\")\n\t\t}\n\t\tif rc.Regex != nil {\n\t\t\treturn nil, fmt.Errorf(\"`regex` cannot be used for `action=drop_if_equal`\")\n\t\t}\n\tcase \"keepequal\":\n\t\tif targetLabel == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"missing `target_label` for `action=keepequal`\")\n\t\t}\n\t\tif rc.Regex != nil {\n\t\t\treturn nil, fmt.Errorf(\"`regex` cannot be used for `action=keepequal`\")\n\t\t}\n\tcase \"dropequal\":\n\t\tif targetLabel == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"missing `target_label` for `action=dropequal`\")\n\t\t}\n\t\tif rc.Regex != nil {\n\t\t\treturn nil, fmt.Errorf(\"`regex` cannot be used for `action=dropequal`\")\n\t\t}\n\tcase \"keep\":\n\t\tif len(sourceLabels) == 0 && rc.If == nil {\n\t\t\treturn nil, fmt.Errorf(\"missing `source_labels` for `action=keep`\")\n\t\t}\n\tcase \"drop\":\n\t\tif len(sourceLabels) == 0 && rc.If == nil {\n\t\t\treturn nil, fmt.Errorf(\"missing `source_labels` for `action=drop`\")\n\t\t}\n\tcase \"hashmod\":\n\t\tif len(sourceLabels) == 0 {\n\t\t\treturn nil, fmt.Errorf(\"missing `source_labels` for `action=hashmod`\")\n\t\t}\n\t\tif targetLabel == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"missing `target_label` for `action=hashmod`\")","sourceCodeStart":322,"sourceCodeEnd":358,"githubUrl":"https://github.com/VictoriaMetrics/VictoriaMetrics/blob/5079fb58f1e8e62113f90c945ad71586c797d770/lib/promrelabel/config.go#L322-L358","documentation":"Validation guard in parseRelabelConfig for action=dropequal: this action needs a destination label to compare against a source label, so target_label must be set. It fires when a dropequal relabeling rule is defined without target_label.","triggerScenarios":"Thrown at lib/promrelabel/config.go:340 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add `target_label: <label_name>` to the relabeling rule","If comparison against the metric name was intended, use `action=drop_if_equal` instead"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5079fb58f1e8e62113f90c945ad71586c797d770","analyzedAt":"2026-09-03T18:10:26.153Z","contentChangedAt":"2026-09-03T18:10:26.153Z","schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}