Skip to content
English
  • There are no suggestions because the search field is empty.

Cluster Sync Failures Due to Large Resource Counts

Error: "failed to load initial state of resource .: failed to list resources: The provided continue parameter is too old..."

Cluster Sync Failures Due to Large Resource Counts

Error: "failed to load initial state of resource <ResourceType>.<Group>: failed to list resources: The provided continue parameter is too old..."

Symptoms:
- Cluster sync fails with "continue parameter is too old" error
- 500+ instances of resource type
- kubectl get <ResourceType> --all-namespaces times out

Root Cause: Kubernetes API pagination fails when listing 500+ resources because continue tokens expire before all resources are retrieved.

Example Error Logs:

1. Cluster-level sync failure:
{"error":"failed to load initial state of resource <ResourceType>.<Group>: failed to list resources: The provided continue parameter is too old to display a consistent list result. You can start a new list without the continue parameter, or use the continue token in this response to retrieve the remainder of the results. Continuing with the provided token results in an inconsistent list - objects that were created, modified, or deleted between the time the first chunk was returned and now may show up in the list.","level":"error","msg":"Failed to sync cluster","server":"http://cluster-some-cluster:8001"}

2. Application-level errors (affects multiple applications):
{"app-namespace":"argocd","application":"<application-name>","level":"info","msg":"Resuming in-progress operation. phase: Running, message: ComparisonError: Failed to load live state: failed to get cluster info for \"http://cluster-some-cluster:8001\": error synchronizing cache state : failed to sync cluster http://cluster-some-cluster:8001: failed to load initial state of resource <ResourceType>.<Group>: failed to list resources: The provided continue parameter is too old..."}

3. Resource deletion failures:
{"application":"<application-name>","level":"info","msg":"Unable to delete application resources: failed to get cluster info for \"http://cluster-some-cluster:8001\": error synchronizing cache state : failed to sync cluster http://cluster-some-cluster:8001: failed to load initial state of resource <ResourceType>.<Group>: failed to list resources: The provided continue parameter is too old...","type":"Warning"}

4. Cache resource failures:
{"level":"error","msg":"Failed to cache app resources: error getting resource tree: failed to iterate resource hierarchy v2: error synchronizing cache state : failed to sync cluster http://cluster-some-cluster:8001: failed to load initial state of resource <ResourceType>.<Group>: failed to list resources: The provided continue parameter is too old..."}


Solution:
Add the affected resources to Exclusions.

1. Navigate: Argo CD Settings → Advanced - Reconciliation Settings → Exclusions

2. In Exclusions section, add YAML format (apiGroups/kinds, not Kind.Group):

- apiGroups:
 - <Group>
 kinds:
 - <ResourceType>



3. Verify:

kubectl logs -n akuity deployment/argocd-application-controller | grep "<ResourceType>"


Best Practices:

Exclude if ALL true:
- 500+ instances causing sync failures
- Not managed by Argo CD (Crossplane/Upbound, operators, controllers)
- Not in Git repos that Argo CD syncs
- No need for drift detection

Do NOT exclude if:
- Resources are in Git and managed by Argo CD
- Need drift detection/GitOps enforcement
- Can reduce count or split across clusters

Common exclusions: Crossplane/Upbound, operator CRDs, infrastructure resources.
Note: For frequently-changing tracked resources, use reconcile optimization instead: https://argo-cd.readthedocs.io/en/stable/operator-manual/reconcile