argocd-cm ConfigMap and restarting the application controller so the new setting takes effect.
Key steps
- Edit the
argocd-cmConfigMap in theargocdnamespace and settimeout.reconciliationto a duration string (for example,"10s"). - Restart the ArgoCD application controller (Deployment or StatefulSet) so it loads the updated configuration.
- Verify the new behavior by changing an ArgoCD-managed manifest in Git and observing faster reconciliation.

1. Edit the ConfigMap (set poll/reconciliation interval)
Open theargocd-cm ConfigMap in the argocd namespace and edit it:
data: section add or update timeout.reconciliation with a duration string (examples: "10s", "60s", "1m"). The value must be a string.
Minimal example to add:
resource.customizations (for ignoring noisy fields or other behaviors), keep those entries. A common pattern includes resource.customizations.ignoreResourceUpdates.* to avoid unnecessary drift detection noise. Example entries you can keep or adapt:
timeout.reconciliation.
After you save the edited ConfigMap, you must restart the ArgoCD application controller (Deployment or StatefulSet) so the controller picks up the new
timeout.reconciliation value.2. Restart the application controller
The application controller must be restarted to load the new ConfigMap value. Most ArgoCD installations use a Deployment namedargocd-application-controller, but some use a StatefulSet.
For a Deployment:

3. Verify with a deployment change (test reconciliation frequency)
Make a small change in the Git repo for an ArgoCD-managed app to confirm faster polling. In this demo we change the replica count of a Deployment. This is the manifest as stored in Git before the change:replicas to a new value (for example 7), commit and push. Example updated manifest:
timeout.reconciliation (plus any processing time). Check the target namespace to observe pod scaling and reconciliation:
timeout.reconciliation: "10s" is set and the application controller was restarted, you should observe reconciliation occurring more frequently than the default (often within the configured interval plus controller processing time).
Quick reference — common commands
| Task | Command / Notes | |
|---|---|---|
| Edit ConfigMap | kubectl -n argocd edit cm argocd-cm | |
| Set poll interval | Add timeout.reconciliation: "10s" under data: in the ConfigMap | |
| Restart controller (Deployment) | kubectl -n argocd rollout restart deployment argocd-application-controller | |
| Restart controller (StatefulSet) | kubectl -n argocd rollout restart sts argocd-application-controller | |
| Verify ConfigMap contains timeout | `kubectl -n argocd get cm argocd-cm -o yaml | grep -i timeout` |
| Check controller logs | kubectl -n argocd logs -l app.kubernetes.io/name=argocd-application-controller | |
| Inspect target namespace pods | kubectl -n <namespace> get po |
Troubleshooting tips
- Ensure
timeout.reconciliationis a quoted string value (for example"10s") under the ConfigMapdata:; unquoted values may be rejected or parsed incorrectly. - Always restart the
argocd-application-controllerafter editingargocd-cm; the controller reads this ConfigMap at startup. - If reconcilation is still slow:
- Confirm the controller restart succeeded (
kubectl -n argocd get deployment argocd-application-controller). - Inspect controller logs for errors or warnings:
- Check for any cluster-level rate limiting or heavy controller load that could delay reconciliation.
- Confirm the controller restart succeeded (
- For ArgoCD version-specific behavior or additional tuning options, refer to the official docs: Argo CD documentation - Configuration and Argo CD troubleshooting.
timeout.reconciliation in the argocd-cm ConfigMap and ensuring the application controller loads the new configuration.