cilium/cilium · error
no health status found for the filter
Error message
no health status found for the filter
What it means
The 'cilium-dbg hive health' (or cilium health status) command queries the module health table with optional --prefix/--match filters. It throws this when the filters are set but the query returns no matching status entries, so there is nothing to display.
Source
Thrown at pkg/hive/health/command.go:98
for i := range levels {
levels[i] = strings.ToLower(levels[i])
}
w := s.LogWriter()
if file != "" {
p := s.Path(file)
fd, err := os.Create(p)
if err != nil {
return nil, err
}
w = fd
}
ss := getHealth(db, table, prefix, match, levels)
healthPkg.GetAndFormatModulesHealth(w, ss, true, "")
if (prefix != "" || match != "") && len(ss) == 0 {
return nil, errors.New("no health status found for the filter")
}
return nil, nil
},
)
}
func getHealth(db *statedb.DB, table statedb.Table[types.Status], prefix, match string, levels []string) []types.Status {
tx := db.ReadTxn()
results := table.Prefix(tx, StatusByID(types.HealthID(prefix)))
ss := []types.Status{}
for status := range results {
if match != "" && !strings.Contains(status.ID.String(), match) {
continue
}
if !slices.Contains(levels, strings.ToLower(status.Level.String())) {
continue
}View on GitHub (pinned to ac7b90affa)
Solutions
- Check the module prefix/match string spelling and case
- Run without --prefix/--match to list all available health statuses and pick the correct name
- Verify the target module actually exists in this Cilium version
Example fix
# before cilium-dbg hive health --prefix module.heatlh # after cilium-dbg hive health --prefix module.health
Defensive patterns
Strategy: validation
Validate before calling
statuses := getHealth(db, table, prefix, match, levels)
if (prefix != "" || match != "") && len(statuses) == 0 {
fmt.Fprintln(os.Stderr, "no health status matched; run without filters to list modules")
os.Exit(1)
} Try / catch
if err := healthCmd.RunE(...); err != nil {
if strings.Contains(err.Error(), "no health status found") {
fmt.Fprintln(os.Stderr, "check module prefix spelling; list all with no --prefix/--match")
}
return err
} Prevention
- List all health statuses first (no filters) to get exact module names
- Copy prefixes from the unfiltered output instead of typing them
- Confirm module names against the Cilium version in use
When it happens
Trigger: Running the hive health status command with a --prefix or --match filter that does not match any registered health module (getHealth returns an empty slice).
Common situations: Typo in the module prefix, querying a module from a different Cilium version that was renamed/removed, or the module hasn't registered status yet when the command runs.
Related errors
- trailing --not found in the arguments
- consecutive --not statements
- config file undefined
- --keys-only and --values-only are mutually exclusive
- failed to unmarshal bgp state from %s: %w
AI-assisted analysis of cilium/cilium@ac7b90affa (2026-08-31).
Data as JSON: /api/errors/0a0412abcc008731.
Report an issue: GitHub.