diff --git a/pkg/controller/acmeorders/sync.go b/pkg/controller/acmeorders/sync.go index d27a807d6..17e0e7cf4 100644 --- a/pkg/controller/acmeorders/sync.go +++ b/pkg/controller/acmeorders/sync.go @@ -239,9 +239,10 @@ func (c *controller) updateOrderStatus(ctx context.Context, cl acmecl.Interface, } o.Status.FinalizeURL = acmeOrder.FinalizeURL c.setOrderState(&o.Status, acmeOrder.Status) - // only set the authorizations field if the lengths mismatch. - // state can be rebuilt in this case on the next call to ProcessItem. - if len(o.Status.Authorizations) != len(acmeOrder.AuthzURLs) { + // once the 'authorizations' slice contains at least one item, it cannot be + // updated. If it does not contain any items, update it containing the list + // of authorizations returned on the Order. + if len(o.Status.Authorizations) == 0 { o.Status.Authorizations = constructAuthorizations(acmeOrder) }