ArgoCD Sync Failed — Application Out of Sync and Health Degraded
Errorcommand
Overview
Fix ArgoCD application sync failures where the live Kubernetes state drifts from the Git repository desired state, showing OutOfSync or Degraded status.
Key Details
- ArgoCD implements GitOps by continuously comparing Git repository manifests with live Kubernetes state
- OutOfSync means the live state differs from the Git desired state
- Degraded health means deployed resources are not in a healthy state (pods crashing, services down)
- Sync can fail due to validation errors, RBAC issues, or resource conflicts in the cluster
- ArgoCD supports auto-sync which automatically applies changes when Git is updated
Common Causes
- Manual changes made directly to Kubernetes cluster (kubectl edit/apply) bypassing Git
- Helm chart values or Kustomize patches failing to render valid Kubernetes manifests
- RBAC permissions preventing ArgoCD service account from creating or modifying resources
- Resource hooks (PreSync, PostSync) failing and blocking the sync operation
Steps
- 1Check sync status in ArgoCD UI: click the application > view the sync diff to see what differs
- 2View sync failure details: argocd app get APP_NAME or check the Events tab in the UI
- 3Force sync to override manual changes: argocd app sync APP_NAME --force
- 4Fix RBAC: ensure ArgoCD's service account has permissions in the target namespace
- 5Check hooks: PreSync and PostSync jobs must complete successfully — check their pod logs
Tags
argocdgitopssynckubernetesout-of-sync
Related Items
More in Command
linux-exit-code-127Linux Exit Code 127 — Command Not Found
Warninglinux-exit-code-126Linux Exit Code 126 — Permission Denied
Warninglinux-segmentation-faultLinux Segmentation Fault (Signal 11)
Errorlinux-killed-signal-9Linux Process Killed (Signal 9)
Errorlinux-ansible-playbook-errorsAnsible Playbook Errors — Task Failures, SSH Connectivity, and Variable Resolution Issues
Warninglinux-terraform-errorsTerraform Errors — Plan, Apply, and State Management Failures
WarningFrequently Asked Questions
Manual kubectl commands, Kubernetes controllers modifying resources (HPA scaling, CRD controllers), or admission webhooks adding default values. Enable ArgoCD auto-sync with self-heal to automatically correct drift.