Announcing the Saviynt Knowledge Exchange unifying the Saviynt forums, documentation, training,
and more in a single search tool across platforms. Read the announcement here.

REST Connector: Error in Json Completes the Provisioning Tasks

Sivagami
Valued Contributor
Valued Contributor

Hi Team,

Noticed the behaviour that whenever there is an error in json (Not syntax error but post variables are converted to actual values and there is an error), Saviynt instead of keeping the task in pending, completes it which is not an acceptable behaviour.

Check the error log showing the behaviour.

2023-04-28 07:01:33,421 [quartzScheduler_Worker-30] DEBUG rest.RestProvisioningService - configJSON: [showLogs:true]
2023-04-28 07:01:33,421 [quartzScheduler_Worker-30] DEBUG rest.RestProvisioningService - accountId:xxxxxxxx securitysystems: 40
2023-04-28 07:01:33,421 [quartzScheduler_Worker-30] DEBUG rest.RestProvisioningService - Disabling Account name xxxxxxxx
2023-04-28 07:01:33,421 [quartzScheduler_Worker-30] DEBUG rest.RestProvisioningService - Disabling account xxxxxxx
2023-04-28 07:01:33,430 [quartzScheduler_Worker-30] DEBUG rest.RestProvisioningService - Total Call: 2
2023-04-28 07:01:33,430 [quartzScheduler_Worker-30] ERROR rest.RestProvisioningService - Exception in creating original http params:com.fasterxml.jackson.core.JsonParseException: Unexpected character ('$' (code 36)): was expecting comma to separate Object entries
2023-04-28 07:01:33,507 [quartzScheduler_Worker-30] DEBUG rest.RestProvisioningService - connection: userAuth
2023-04-28 07:01:33,817 [quartzScheduler_Worker-30] ERROR rest.RestProvisioningService - Error in processWebservicecom.fasterxml.jackson.core.JsonParseException: Unexpected character ('"' (code 34)): was expecting comma to separate Object entries
2023-04-28 07:01:33,818 [quartzScheduler_Worker-30] DEBUG rest.RestProvisioningService - Task Response: null
2023-04-28 07:01:33,818 [quartzScheduler_Worker-30] DEBUG rest.RestProvisioningService - Task Result true
2023-04-28 07:01:33,818 [quartzScheduler_Worker-30] DEBUG services.ArsTaskService - Inside updateProvisioningTries..
2023-04-28 07:01:33,818 [quartzScheduler_Worker-30] DEBUG services.ArsTaskService - reconApplication= true
2023-04-28 07:01:33,822 [quartzScheduler_Worker-30] DEBUG services.ArsTaskService - updated status=Manually Suspended for 0 accounts which are created by endpoint filter

Notify @SB @sahajranajee - At least we should track to fix them in upcoming versions as it's not an acceptable behaviour.

-Siva

3 REPLIES 3

SB
Saviynt Employee
Saviynt Employee

Can you share the complete json you are using.


Regards,
Sahil

Sivagami
Valued Contributor
Valued Contributor

To give an example, the request has json body so we have to pass it in httpParams and escape double quotes. By mistake, I had escaped double quotes twice which didn't show any formatting issue as it's a valid json in any formatter. When Saviynt tries to convert variables to actual values, it identifies the issue with json format and throws the error. When encountering such errors, it moves the task to completed instead of keeping it in pending and showing appropriate error. Hope this helps.

 

{
  "call": [
    {
      "name": "call1",
      "connection": "userAuth",
      "url": "https://myhost.mydomain.com/api/v1/users",
      "httpMethod": "POST",
      "httpParams": "{\"userName\":\"\"${if(user?.customproperty42!=null) {(user.customproperty42)} else {'svc.dummyuser'}}\"\"}",
      "httpHeaders": {
        "Authorization": "${access_token}",
        "Accept": "application/json"
      },
      "httpContentType": "application/json",
      "successResponses": {
        "statusCode": [
          204
        ]
      }
    }
  ]
}

 

  -Siva

SB
Saviynt Employee
Saviynt Employee

Can you also check for the log file for the below entries and share the same.  You will need to update ConfigJSON param in the REST connection with value {"showLogs":true} to be able to view below string.

Calling Webservice Url

Got Webservice API Response


Regards,
Sahil