LastAsyncOperation stati remain forever on resource
- Dominant language
- Go
- Stars
- 481
- Forks
- 131
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 11
Description
### What happened?
Due to the persistent issues with async tfpluginsdk mode, we switched out provider to sync mode.
Many resources now have stuck conditions of the async mode, that won't go away:
```yaml
conditions:
- lastTransitionTime: '2026-06-19T08:31:18Z'
observedGeneration: 4
reason: ReconcileSuccess
status: 'True'
type: Synced
- lastTransitionTime: '2026-06-19T08:31:14Z'
reason: Available
status: 'True'
type: Ready
- lastTransitionTime: '2026-02-02T13:34:30Z'
reason: Finished
status: 'True'
type: AsyncOperation
- lastTransitionTime: '2026-06-03T20:57:24Z'
message: >-
async create failed: failed to create the resource: [{0 409 Conflict:
That action name has already been taken. []}]
reason: AsyncCreateFailure
status: 'False'
type: LastAsyncOperation
```
The argocd health LUA for xp resources shows these as degraded, even though they are fine.
Deleting the conditions in the live manifest doesn't help, they immediately come back.
Shutting down the provider, deleting them, turning the provider back on also brings them back. IDK where those are persisted/cached.
Contributor guide
Research direction
No file, test, or entry point is named. Start by reproducing the issue after switching from async to sync tfpluginsdk mode, then trace where LastAsyncOperation conditions are restored during resource reconciliation or persistence. Done means stale async conditions no longer return and Argo CD health no longer reports the resource as degraded.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100