crossplane / crossplane/upjet

LastAsyncOperation stati remain forever on resource

Open
#679 0 comments 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.