NullPointerException When Attempting to Update Tasks

What problem are you observing?

When we were trying to close some old stuck tasks, we noticed that occasionally our PATCH operation would receive a NullPointerException response with a 500 code. We were unable to determine why this happened, but even with this error, our PATCH operation would still be successful.

This Topic is being created in response to this form post as this behavior seems to have occurred in at least one other company’s tenant.

What is the correct behavior?

Either receive a response with a 200 success code that includes the updated task info in the body, or generate an appropriate error message that prevents the PATCH operation from being applied.

What product feature is this related to?

ISC Beta API

What are the steps to reproduce the issue?

Build a PATCH operation call to {{baseUrl}}/beta/task-status/:id with a body that includes replacement operations for “completedStatus” (Success) and “completed” (time). We do not know what exactly causes some of these calls to fail, but sometimes when making this call it returns this response, but the task is still updated according to what was defined in the body.

{
	"errorName": "NullPointerException",
	"errorMessage": null,
	"trackingId": "9f49f1a57c7a4e0ca62e2df7be2ac75f"
}

Do you have any other information about your environment that may help?

Example of error:

Call being made (Tue, 02 Apr 2024 21:30:05 GMT)

PATCH {{baseUrl}}/task-status/e3fe7ef8abb74a26863725e6e726b938
[
	{
		"op": "replace",
		"path": "/completionStatus",
		"value": "Success"
	},
	{
		"op": "replace",
		"path": "/completed",
		"value": "2024-04-02T12:00:00.000Z"
	}
]

Response

{
	"errorName": "NullPointerException",
	"errorMessage": null,
	"trackingId": "3691d00f45e54938956e276c86cd3e0b"
}

A GET call was made after this error was received and the task shows the updates despite the error from the PATCH response (Tue, 02 Apr 2024 21:30:17 GMT)

GET {{baseUrl}}/task-status/e3fe7ef8abb74a26863725e6e726b938
{
	"id": "e3fe7ef8abb74a26863725e6e726b938",
	"type": "QUARTZ",
	"uniqueName": "Attribute Sync - a11702f0-a67d-4f68-bd5b-9ba7518b502b",
	"description": "Workflow Case",
	"parentName": null,
	"launcher": "System",
	"target": {
		"type": null,
		"id": "ebf160b27ec7410f88ae0233e5b19de9",
		"name": "CiprCh"
	},
	"created": "2024-01-11T14:14:00.150Z",
	"modified": "2024-04-02T21:30:05.893Z",
	"launched": "2024-01-11T14:14:00.141Z",
	"completed": "2024-04-02T12:00Z",
	"taskDefinitionSummary": {
		"id": "2c9180876e858c98016ecb75ea360973",
		"uniqueName": "Workflow Launcher",
		"description": "Workflow Case",
		"parentName": "Workflow Launcher",
		"executor": "sailpoint.task.WorkflowExecutor",
		"arguments": {}
	},
	"completionStatus": "SUCCESS",
	"messages": [],
	"returns": [
		{
			"name": "CASE",
			"attributeName": "case"
		}
	],
	"attributes": {
		"identityRequestId": null,
		"workflowCaseId": "1c3cacd5d639459190f8005a0c54ea6f"
	},
	"progress": null,
	"percentComplete": 0
}

Example of working call made shortly before the previous failure (Tue, 02 Apr 2024 21:24:09 GMT):

Call being made

PATCH {{baseUrl}}/task-status/1af6551162094ff285f997d43ecadab3
[
	{
		"op": "replace",
		"path": "/completionStatus",
		"value": "Success"
	},
	{
		"op": "replace",
		"path": "/completed",
		"value": "2024-04-02T12:00:00.000Z"
	}
]

Response

200 Success Code
{
	"id": "1af6551162094ff285f997d43ecadab3",
	"type": "QUARTZ",
	"uniqueName": "Cloud Access Request Provisioning - 317bc6657f08442fba071fe902b4b261",
	"description": "Workflow Case",
	"parentName": null,
	"launcher": "Grunden Savannah",
	"target": {
		"type": null,
		"id": "d73c674f893e4b1398cd444bc26e744c",
		"name": "svc_bss"
	},
	"created": "2023-12-09T03:41:18.612Z",
	"modified": "2024-04-02T21:24:09.217Z",
	"launched": "2023-12-09T03:41:16.055Z",
	"completed": "2024-04-02T12:00Z",
	"taskDefinitionSummary": {
		"id": "2c9180876e858c98016ecb75ea360973",
		"uniqueName": "Workflow Launcher",
		"description": "Workflow Case",
		"parentName": "Workflow Launcher",
		"executor": "sailpoint.task.WorkflowExecutor",
		"arguments": {}
	},
	"completionStatus": "SUCCESS",
	"messages": [],
	"returns": [
		{
			"name": "CASE",
			"attributeName": "case"
		}
	],
	"attributes": {
		"identityRequestId": "6538f7e7b0cf4c078b971c9ecd28d459",
		"workflowCaseId": "954548005d98401f9826a15b9996895f"
	},
	"progress": null,
	"percentComplete": 0
}

Thanks for reporting this Zach. I have opened a ticket (IDNDENALI-9642) to investigate this issue. I’ll report back here when there are updates.