Error Codes Wiki

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

  1. 1Check sync status in ArgoCD UI: click the application > view the sync diff to see what differs
  2. 2View sync failure details: argocd app get APP_NAME or check the Events tab in the UI
  3. 3Force sync to override manual changes: argocd app sync APP_NAME --force
  4. 4Fix RBAC: ensure ArgoCD's service account has permissions in the target namespace
  5. 5Check hooks: PreSync and PostSync jobs must complete successfully — check their pod logs

Tags

argocdgitopssynckubernetesout-of-sync

Related Items

More in Command

Frequently 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.