Bug: ArgoCD Apps list shows empty sync/health status for every external Argo CD application (row keys are lower-cased, lookup keys are not) · Issue #7030 · devtron-labs/devtron · GitHub
You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Bug: ArgoCD Apps list shows empty sync/health status for every external Argo CD application (row keys are lower-cased, lookup keys are not) #7030
On the Applications → ArgoCD Apps tab (external Argo CD instance registered via the cluster), the App Status column shows - for every application, even though every Argo Application in the cluster is Synced / Healthy. The list API confirms the fields are empty:
GET /orchestrator/argo-application?clusterIds=1
→ result[].appStatus == "" and result[].syncStatus == "" for all 16 apps
The app details page (resource tree) shows the correct health, so only the list is affected.
Root cause (verified against the running binary and the source at the same commit):
The list is built from the Kubernetes Table API response by BuildK8sObjectListTableData in common-lib (utils/k8s/K8sUtil.go), which lower-cases every column name before using it as the row-map key:
columnName=strings.ToLower(columnName)
so the row keys are sync status and health status.
getApplicationListDtos in pkg/argoApplication/ArgoApplicationService.go reads the rows with the printer-column constants from commonBean:
The values are there, under lower-case keys. The same code is present on main (5916f39) and in v2.2.0; common-lib pin v0.18.1-0.20241001061923-eda545dc839e contains the ToLower.
👟 Reproduction steps
Register a cluster that has an Argo CD instance (Applications in namespace argocd).
Make sure at least one Application is Synced/Healthy (kubectl -n argocd get applications shows the columns).
Open Applications → ArgoCD Apps in the Devtron dashboard, or call GET /orchestrator/argo-application?clusterIds=<id>.
👍 Expected behavior
appStatus / syncStatus in the list response (and the App Status column) reflect status.health.status / status.sync.status of the Application, e.g. Healthy / Synced.
👎 Actual Behavior
Both fields are empty strings; the UI shows - for every external Argo CD app.
☸ Kubernetes version
v1.36.4 (kubeadm, single node). Argo CD v3.4.5 (applications.argoproj.io CRD with printer columns Sync Status, Health Status, Revision, Project).
Cloud provider
Bare metal (Proxmox VM, OVH). Devtron v2.1.1 via chart devtron-operator 0.23.2, orchestrator image quay.io/devtron/devtron:1188d0b9-434-38818 (gitCommit 1188d0b9).
🌍 Browser
Chrome (not browser-related; reproducible with curl against the API).
Activity