cilium/cilium · warning
failed to collect cilium-operator profiles: %w
Error message
failed to collect cilium-operator profiles: %w
What it means
Returned when profiling is enabled and SubmitStreamProfilingGopsSubtasks for cilium-operator pods fails. This submits tasks that stream gops profiling data from the operator container on the gops port (ciliumdef.GopsPortOperator). Failure means operator profiling data could not be collected.
Source
Thrown at cilium-cli/sysdump/sysdump.go:1401
Task: func(_ context.Context) error {
if err := c.submitCiliumBugtoolTasks(c.CiliumPods); err != nil {
return fmt.Errorf("failed to collect 'cilium-bugtool': %w", err)
}
return nil
},
},
{
CreatesSubtasks: true,
Description: "Collecting profiling data from Cilium Operator pods",
Quick: false,
Task: func(_ context.Context) error {
if !c.Options.Profiling {
return nil
}
err := c.SubmitStreamProfilingGopsSubtasks(c.CiliumOperatorPods, ciliumOperatorContainerName, ciliumdef.GopsPortOperator)
if err != nil {
return fmt.Errorf("failed to collect cilium-operator profiles: %w", err)
}
return nil
},
},
{
CreatesSubtasks: true,
Description: "Collecting logs from Cilium pods",
Quick: false,
Task: func(_ context.Context) error {
if err := c.SubmitLogsTasks(c.CiliumPods, c.Options.LogsSinceTime, c.Options.LogsLimitBytes); err != nil {
return fmt.Errorf("failed to collect logs from Cilium pods")
}
return nil
},
},
{
CreatesSubtasks: true,
Description: "Collecting logs from crashing Cilium pods",View on GitHub (pinned to ac7b90affa)
Solutions
- Confirm the cilium-operator is started with gops/profiling enabled on the default port
- Check the operator container name matches what the CLI expects
- Disable profiling (--profiling=false) if operator profiles are not required
Example fix
// before cilium-cli sysdump --profiling // after (skip profiling when gops is not enabled) cilium-cli sysdump
Defensive patterns
Strategy: fallback
Validate before calling
// confirm the operator gops port is listening before enabling profiling
conn, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", operatorIP, 9890), 2*time.Second)
if err != nil { log.Printf("gops port not reachable; disable --profiling") } else { conn.Close() } Try / catch
if err := c.SubmitStreamProfilingGopsSubtasks(pods, containerName, gopsPort); err != nil {
log.Printf("profiling collection failed (%v); continuing without profiles", err)
} Prevention
- Only pass --profiling when operator gops is enabled on the default port
- Keep default operator container naming
- Treat profiles as optional data; do not fail the whole sysdump on them
When it happens
Trigger: sysdump.Run with Options.Profiling=true and SubmitStreamProfilingSubtasks(c.CiliumOperatorPods, ciliumOperatorContainerName, ciliumdef.GopsPortOperator) returning an error — wrong container name, or gops agent not reachable on the operator's expected port.
Common situations: Operator deployed with profiling disabled or a non-default gops port; operator container renamed in custom deployments; network policy blocking pod-to-pod access to the gops port.
Related errors
- failed to collect profiling data from Cilium pods: %w
- failed to collect gops profiling data: %w
- failed to collect the Cilium clustermesh gops stats: %w
- failed to collect the Cilium clustermesh profiles: %w
- failed to collect Cilium gops: %w
AI-assisted analysis of cilium/cilium@ac7b90affa (2026-08-31).
Data as JSON: /api/errors/5117840393fef978.
Report an issue: GitHub.