ISC identity profile lifecycle states can't add source if other source is deleted

Hi all, :slight_smile:

In ISC, I try to add a source that supports enabling/disabling to a lifecycle state.

I use the PATCH API with body

[
  {
    "op":"add",
    "path":"/accountActions/0/sourceIds/-",
    "value":"123412421342142142142341242314"
  }
]

It then gives this 400 error The request was syntactically correct but its content is semantically invalid.

This input is not semantically invalid. The issue is that there happens to be a different source added to this list that has since been deleted.

If you delete a source, it will not automatically get removed from the list in the lifecycle states, mentioning which sources to disable/enable. The reference keeps existing. ISC backend doesn’t have code to remove this reference when deleting a source. Also, there is no automatic corrupt reference cleaning functionality on SailPoint side that will pick this up each day.
And since the deletion operation on the source is not giving a ‘in-use error’ as well (which we don’t want, automatic reference cleanup is preferred), SailPoint ISC is allowing operations that is corrupting the structure.

Since source admins don’t even have the capability to clean this up themselves, this is giving chaos.

To make matters even more difficult, a patch to remove that deleted source from the lifecycle state might even break if there is still another deleted source in that list. Since the PATCH only allows cleaning up if you clean everything up simultaneously.

Kind regards,
Angelo

2 Likes

Thank you for reporting this Angelo. A bug report has been opened (PLTCONN-6788).

2 Likes

I there are quite a few areas in ISC where automatic reference cleanup is not being done. eg Entitlements.

1 Like

Just received this update from SailPoint Support: