netdata/netdata · error · anyhow::Error
unsupported classifier action '{name}'
Error message
unsupported classifier action '{name}' What it means
The classifier rule used an action-function name that the parser does not recognize — the match in `parse_action` fell through to the catch-all arm. This is the parse-time unknown-builtin error; the supported action set is fixed (Reject, Classify*, SetName, SetDescription, ClassifyExternal/Internal, ...).
Source
Thrown at src/crates/netflow-plugin/src/enrichment/classifiers/parse/action.rs:140
arg3,
compiled,
))
}
"SetName" => Ok(ActionExpr::SetName(one_string_arg(name, args)?)),
"SetDescription" => Ok(ActionExpr::SetDescription(one_string_arg(name, args)?)),
"ClassifyExternal" => {
if !args.is_empty() {
anyhow::bail!("ClassifyExternal() does not accept arguments");
}
Ok(ActionExpr::ClassifyExternal)
}
"ClassifyInternal" => {
if !args.is_empty() {
anyhow::bail!("ClassifyInternal() does not accept arguments");
}
Ok(ActionExpr::ClassifyInternal)
}
_ => anyhow::bail!("unsupported classifier action '{name}'"),
}
}
View on GitHub (pinned to 4864de85e2)
Solutions
- Check the supported action list in the classifier documentation for this version and use one of those names exactly.
- Fix typos/casing — action names are matched literally.
- If you need behavior from an action that does not exist, approximate it with SetName/SetDescription plus conditions, or file a feature request.
Example fix
// before
SetRole("edge")
// after
ClassifyRole("edge") Defensive patterns
Strategy: validation
Validate before calling
// Whitelist check before deploy
const SUPPORTED: &[&str] = &["Reject", "Classify", "ClassifyGroup", "ClassifyRole",
"ClassifySite", "SetName", "SetDescription", "ClassifyExternal", "ClassifyInternal"];
fn action_supported(name: &str) -> bool {
SUPPORTED.contains(&name)
} Prevention
- Keep the supported-action list from your version's docs at hand when authoring rules.
- Beware muscle memory from other classifier DSLs — action names must match exactly.
- After upgrading, re-check the action list; names are matched literally.
When it happens
Trigger: Writing any unknown function call as a rule term: `SetRole(x)`, `Drop()`, `ClassifyAS(65001)`, or a typo like `SetNam(x)`.
Common situations: Typos in action names; assuming parity with another product's classifier DSL (e.g. Akips or ntopng syntax) that has actions this engine lacks; version drift where an action was renamed or not yet available in this build.
Related errors
- format pattern has {} unused arguments
- invalid regex '{pattern}' in {context} expression: {err}
- Reject() does not accept arguments
- ClassifyExternal() does not accept arguments
- ClassifyInternal() does not accept arguments
AI-assisted analysis of netdata/netdata@4864de85e2 (2026-08-15).
Data as JSON: /api/errors/0e1ed588bbb76016.
Report an issue: GitHub.