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.Manual changes - Someone changed resources directly
- 2.Parameter overrides - UI overrides conflict with Git
- 3.Auto-sync disabled - Manual changes accumulated
- 4.Helm value changes - Values changed outside Git
- 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
| Check | Command | Expected |
|---|---|---|
| App status | argocd app get | Synced |
| No overrides | argocd app get | None |
| Git matches | argocd app diff | Empty |
Verify the Fix
# Check sync status:
argocd app get myapp
# Output: Status: Healthy, SyncedRelated Issues
- [Fix ArgoCD Sync Timeout](/articles/fix-argocd-sync-timeout)
- [Fix ArgoCD Health Check Failed](/articles/fix-argocd-health-check-failed)