LBListener goes unsynced after upgrading provider-aws-elbv2 across v1.23.2: "defaultAction is a required parameter"
Last updated: July 29, 2026
Issue
After upgrading
provider-aws-elbv2/upbound-provider-family-awsacross v1.23.2 (e.g. v1.23.0 → v1.23.15), pre-existingLBListenermanaged resources go unsyncedThe apply is rejected with a misleading validation error:
LBListener.elbv2.aws.upbound.io "<name>" is invalid:
spec: Invalid value: spec.forProvider.defaultAction is a required parameterdefaultActionis actually present in both the composition output and the stored MRThe underlying AWS NLB / listener stays healthy — this is a control-plane reconciliation failure only
Blocks any change while environments run mixed provider versions
Only affects LBListener resources created before the upgrade; freshly created resources on the new version are fine
Environment
Crossplane / UXP (also reproduces on upstream Crossplane)
provider-aws-elbv2/upbound-provider-family-aws— schema change introduced in v1.23.2LBListener resources with a
defaultActionentry, created on a version older than v1.23.2
Resolution
Workaround: explicitly set
index: "default"on eachdefaultActionentry in your compositionGuard it so it is only added when the provider version is v1.23.2 or later
Example:
spec:
forProvider:
defaultAction:
- index: default
type: forward
targetGroupArnRef:
name: <target-group-name>After applying, the affected LBListener resources return to
SyncedValidated: confirmed to bring all affected LBListener resources back in sync
Cause
In v1.23.2,
spec.forProvider.defaultActionchanged from an atomic list to a Kubernetes map-type list keyed on a newindexfield (x-kubernetes-list-map-keys: [index], default valuedefault)This was a server-side-apply (SSA) merge-strategy fix for atomic-list merge conflicts when multiple controllers manage the list
Kubernetes does not migrate existing managedFields ownership from atomic to granular topology; resources created before the change keep a stale atomic ownership entry that conflicts with the new map schema
Without the
indexidentity key, SSA cannot locate the list item to patch it, which surfaces as the misleading "defaultAction is a required parameter" errorFreshly created resources on the new version receive the
indexfield and are unaffected