- make sure you have a unique attribute in the Syncope schema (e.g. called privateEmailAddress)
- create a user via POST and use value 'email@example.com' for this unique attribute
- then try to update this via the Syncope REST API and to change it into 'firstname.lastname@example.org' (by using the below POST payload):
- after this the Syncope MySQL data gets incorrect (the unique attribute will have 2 values in table UAttrUniqueValue) and you cannot e.g. delete anymore the user.
- You then can find the old unique attribute value using query:
and you can fix the Syncope data inconsistency by deleting the related row from UAttrUniqueValue.
- Root cause comes from line 467:
where the delete call uses the same argument values in case of both the non-unique and unique attributes, this in fact a non-unique attributes is tried to be deleted.
Note: as UserMod payloads are not used anymore in Syncope 2 REST API, it's likely that this issue is not happening on Syncope 2, but might reproduce on Syncope 1.1.6-1.2.10.
Note: I have a patch I applied in our overlay and can provide it if necessary.