diff --git a/weed/iamapi/iamapi_management_handlers.go b/weed/iamapi/iamapi_management_handlers.go index bbe6065bd..54c06f47b 100644 --- a/weed/iamapi/iamapi_management_handlers.go +++ b/weed/iamapi/iamapi_management_handlers.go @@ -279,6 +279,10 @@ func (iama *IamApiServer) UpdateUser(s3cfg *iam_pb.S3ApiConfiguration, values ur delete(policies.InlinePolicies, userName) policies.InlinePolicies[newUserName] = userPolicies if pErr := iama.s3ApiConfig.PutPolicies(&policies); pErr != nil { + // Rollback: restore identity name and inline policies + ident.Name = userName + delete(policies.InlinePolicies, newUserName) + policies.InlinePolicies[userName] = userPolicies return resp, &IamError{Code: iam.ErrCodeServiceFailureException, Error: pErr} } }