What's Actually Happening

ArgoCD detects a sync conflict where the live state of resources differs from both Git and the desired state, causing sync failures.

The Error You'll See

```bash # ArgoCD UI shows: Status: OutOfSync Sync Status: Unknown

# Details: Resource has parameter overrides that conflict with Git ```

Why This Happens

  1. 1.Manual changes - Someone changed resources directly
  2. 2.Parameter overrides - UI overrides conflict with Git
  3. 3.Auto-sync disabled - Manual changes accumulated
  4. 4.Helm value changes - Values changed outside Git
  5. 5.Self-heal disabled - Drift not corrected

Step 1: Identify Conflicted Resources

```bash # Check application status: argocd app get myapp

# List out-of-sync: argocd app diff myapp

# Get details: argocd app get myapp --refresh ```

Step 2: Remove Parameter Overrides

```bash # Unset overrides: argocd app unset myapp --parameters

# Or via annotation: kubectl annotate application myapp argocd.argoproj.io/sync-options- ```

Step 3: Sync from Git

```bash # Force sync: argocd app sync myapp --force

# Replace resources: argocd app sync myapp --replace

# Prune resources: argocd app sync myapp --prune ```

ArgoCD Sync Conflict Checklist

CheckCommandExpected
App statusargocd app getSynced
No overridesargocd app getNone
Git matchesargocd app diffEmpty

Verify the Fix

bash
# Check sync status:
argocd app get myapp
# Output: Status: Healthy, Synced
  • [Fix ArgoCD Sync Timeout](/articles/fix-argocd-sync-timeout)
  • [Fix ArgoCD Health Check Failed](/articles/fix-argocd-health-check-failed)