Answer
A dry-run sync asks the API server to validate what would be applied without persisting changes, surfacing errors (schema, admission) before a real sync. It's a safety check to catch problems early, though some issues only appear on actual apply.
argocd app sync app --dry-runReal-world example A dry-run reveals an invalid field so the manifest is fixed before the real sync runs.