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
Last published date
Overview
Onboarded Kubernetes cluster to CMAN, but:
-
The
orion-cmanpod 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.containerStatusesis completely null (e.g., multipleminio,haproxy-controller,otelpods, 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
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
-
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=FailedThis removes pods that are in permanent Failed state and have no
containerStatuseslist. -
Re-check for pods with
containerStatuses == nullRe-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).
-
-
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-cmanpod status is Running. -
Verifying that container metrics are again visible in the SolarWinds UI.
-
-