Unable to modify Identity Profiles - "identity data is being processed" but it's really not

Anyone else seeing this in their environments? I have the blue “Identity data is being processed” banner on my Identity Profiles in both dev and prod tenants, but when I click the View button/go to the Monitor page, there are no MENTOS tasks or any other activity that would typically be reflective of an identity refresh or the like. This is preventing me from making any updates to my identity profile, because you can’t make changes while identity tasks are being processed.

Throwing it out here in case anyone else is experiencing this. Figured maybe something fell over during yesterdays outage and didn’t get picked up, but wanted to see if this was just me before opening a ticket.

Hi @sup3rmark

Yes, faced this issue many times. Especially when we create a new application, it will take almost a day to be available for adding Access Profiles.

We faced this issue a lot of times when we were doing data cleanup in old tenants.

SailPoint recommended to kill the pending tasks. You can find more info here.
Support Articles - [IdentityNow] Identity data is continuously updating (sailpoint.com)

And no issues because of the outage observed.

Thanks
Krish

2 Likes

Thanks for the pointer, @MVKR7T! Unfortunately, the beta endpoint to update the status doesn’t appear to be working at the moment (see error below) but I was able to identify a stuck aggregation that started around 2pm my time yesterday (which lines up with the outage). I’ve asked my Advisory Services team to sort it out for me on their end.

2 Likes

I tried following the document and created a python script to identify the stuck processes. My processes that are stuck are displaying in the JSON response. They are dated from May 14th. However, trying to clear them doesn’t seem to be working. Below is the code I’m using… I didn’t include the auth pieces of the code. My status on trying to clear the logic was to just clear all processes initially, I wrote this for a sandbox and is considered for testing only.

Anybody have a script to clear processes?

Here is a sample output of displaying the key values for the processes

Extracted Information:
Task ID: 16a69d685f6e4d989dab8a6048e7b2ca
Target Name: Amina Example
Created Date: 2024-05-14T18:55:05.020Z
Modified Date: 2024-05-14T18:55:05.173Z

Task ID: 2676d16e191d41ea9047836383b52cfa
Target Name: Kelly example
Created Date: 2024-05-14T18:55:05.064Z
Modified Date: 2024-05-14T18:55:05.220Z

Task ID: 2a3bc752797c4be8a18ce19aeec7230f
Target Name: Richard example
Created Date: 2024-05-14T18:55:05.070Z
Modified Date: 2024-05-14T18:55:05.230Z

#Check for Processes
def list_task_results():
    url = f"{base_url}/beta/task-status/pending-tasks"
    response = requests.get(url, headers=headers)
    response.raise_for_status()
    return response.json()

def print_json_data(task_results):
    # List task results
    print("Task Results (JSON):")
    print(json.dumps(task_results, indent=2))

def stop_all_processes(task_results):
    for task in task_results:
        if task.get('type') == 'QUARTZ':
            task_id = task.get('id')
            stop_all_headers = {
                'Authorization': f'Bearer {access_token}',
	            'Content-Type': 'application/json-patch+json'
                }
            stop_all_body = {
                    "op": "replace",
                    "path": "/completionStatus",
                    "value": "Success"
            }
            json_body = json.dumps(stop_all_body)
            stop_all_url = f"{base_url}/beta/task-status/{task_id}"
            stop_all_response = requests.get(stop_all_url, headers=stop_all_headers, data=json_body)
            print(stop_all_response.status_code)
            set_completed_body = {
                "op": "replace",
                "path": "/completed",
                "value": "2024-05-27T01:01:01.0101"
            }
            json_body = json.dumps(set_completed_body)
            set_status = requests.get(stop_all_url, headers=stop_all_headers, data=json_body)
            print(set_status.status_code)


def display_extracted_information(task_results):
    # Extract key information from each task result
    for task in task_results:
        if task.get('type') == 'QUARTZ':
            task_id = task.get('id')
            target = task.get('target')
            target_name = target.get('name') if target else 'N/A'
            created_date = task.get('created')
            modified_date = task.get('modified')
            
            task_ids.append(task_id)
            target_names.append(target_name)
            created_dates.append(created_date)
            modified_dates.append(modified_date)

    # Print extracted information
    print("\nExtracted Information:")
    for i in range(len(task_ids)):
        print(f"Task ID: {task_ids[i]}")
        print(f"Target Name: {target_names[i]}")
        print(f"Created Date: {created_dates[i]}")
        print(f"Modified Date: {modified_dates[i]}")
        print("-" * 40)

def main():
    task_results = list_task_results()
    
    while True:
        print("\nMenu:")
        print("1. Print JSON data")
        print("2. Display extracted information from JSON")
        print("3. Stop All Processes")
        print("4. Exit Application")
        choice = input("Please enter your choice (1/2/3/4): ")

        if choice == '1':
            print_json_data(task_results)
        elif choice == '2':
            display_extracted_information(task_results)
        elif choice == '3':
            stop_all_processes(task_results)
        elif choice == '4':
            print("Exit Application")
            break
        else:
            print("Invalid choice. Please enter 1, 2, or 3.")

if __name__ == "__main__":
    main()

    
   

Based on a conversation with my Advisory Services architect, the completionStatus and completed timestamp should be in the same payload:

[
    {
        "op": "replace",
        "path": "/completionStatus",
        "value": "Error"
    },
    {
        "op": "replace",
        "path": "/completed",
        "value": "2024-05-28T00:00:00.000Z"
    }
]

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.