Observability

Issues while adding container monitoring in SolarWinds Platform 2026.1.0

CMAN is failing with NullReferenceException and the environment has Kubernetes clusters with many Failed/Pending pods that never started containers.

First published date

3/2/2026 6:24 PM

Last published date

7/29/2026 10:20 PM

Overview

Onboarded Kubernetes cluster to CMAN, but:

  • The orion-cman pod repeatedly ends in Completed state or fails during reporting.

  • CMAN logs show successful container data collection followed by repeated NullReferenceException errors:
Data for containers collected successfully.
Error while collecting data for containers.
Error message: Object reference not set to an instance of an object.
Error occured while building report.
Error message: Object reference not set to an instance of an object.
Exception occured while creating report request.
Error message: Object reference not set to an instance of an object.
Exception occured while creating the report.
Error message: Object reference not set to an instance of an object.
  • Your environment may show many pods in Failed or Pending state where status.containerStatuses is completely null (e.g., multiple minio, haproxy-controller, otel pods, etc.) as below :


root@test:~# kubectl get pods -A -o json | jq -r '.items[]
| select(.status.containerStatuses == null)
| [.metadata.namespace, .metadata.name, .status.phase]
| @tsv'
haproxy-controller haproxy-kubernetes-ingress-vshk9 Failed
hive-k8s-otel otelcol-rns92 Failed
kube-system elastic-agent-xwdqm Failed
minio minio-5f9b7c467b-28w8w Failed
minio minio-5f9b7c467b-2vk9v Failed
minio minio-5f9b7c467b-5w6hw Failed
minio minio-5f9b7c467b-62vrp Failed
minio minio-5f9b7c467b-75rnf Failed
minio minio-5f9b7c467b-8v4bg Failed
minio minio-5f9b7c467b-brdfr Failed

 

Product section

Hybrid Cloud Observability

Cause

In K8sClient.cs, method AssignMetricsToContainers(), the code iterates directly over pod.Status.ContainerStatuses without first checking whether the list itself is null:

foreach (V1ContainerStatus containerStatus in pod.Status.ContainerStatuses)
{
    ...
}

The method later checks if containerStatus is null, but the foreach calls GetEnumerator() on pod.Status.ContainerStatuses before entering the loop body. When the entire ContainerStatuses list is null (typical for pods that never started any containers), the NullReferenceException is thrown at the iteration level, and the internal null-check is never reached.

As a result, any pod with status.containerStatuses == null causes the CMAN K8s probe to crash instead of being skipped.

Resolution

Current status

  • This issue is addressed in SolarWinds Platform 2026.2. Consider upgrading your environment.

  • If you can't upgrade, use the following workaround on the Kubernetes cluster.

Workaround steps

  1. Delete all Failed pods (Confirm this with customer if they really want to delete those failed pods and then proceed )

    Run:

    kubectl delete pods -A --field-selector=status.phase=Failed
    

    This removes pods that are in permanent Failed state and have no containerStatuses list.

  2. Re-check for pods with containerStatuses == null

    Re-run:

    kubectl get pods -A -o json \
      | jq -r '.items[]
        | select(.status.containerStatuses == null)
        | [.metadata.namespace, .metadata.name, .status.phase]
        | @tsv'
    
    • If you still see pods (typically Pending), treat them individually (e.g., fix or delete according to the cluster owner’s policy).

  3. Wait for CMAN to recover

    • After cleanup, the CMAN probe should recover automatically on the next polling cycle (default 300 seconds).

    • Confirm by:

      • Checking orion-cman pod status is Running.

      • Verifying that container metrics are again visible in the SolarWinds UI.