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

MissingPropertyException error during POST Call

shivmano
Regular Contributor III
Regular Contributor III

Hi Team,

Receiving the below error during making a POST call to an application. Has anyone seen a similar error? Please can you let me know what could be the issue here? attached is the json and the log details 

CreateAccountJSON:

{
"accountIdPath": "ProvisionCall.message.data.id",
"dateFormat": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"responseColsToPropsMap": {
"accountID": "ProvisionCall.message.data.id~#~char",
"name": "ProvisionCall.message.data.id~#~char",
"displayName": "ProvisionCall.message.data.attributes.name~#~char",
"customproperty1": "ProvisionCall.message.data.attributes.fields.First Name~#~char",
"customproperty2": "ProvisionCall.message.data.attributes.fields.Last Name~#~char",
"customproperty3": "ProvisionCall.message.data.attributes.email~#~char",
"customproperty4": "ProvisionCall.message.data.attributes.type~#~char",
"customproperty6": "attributes.fields.Loc Country Description~#~char",
"customproperty7": "ProvisionCall.message.data.attributes.profile~#~char",
"customproperty8": "ProvisionCall.message.data.attributes.fields.Function~#~char",
"customproperty9": "attributes.fields.Organization Name~#~char",
"customproperty10": "ProvisionCall.message.data.attributes.userType~#~char",
"customproperty11": "ProvisionCall.message.data.relationships.manager.data.id~#~char",
"customproperty12": "ProvisionCall.message.data.attributes.roles~#~char",
"customproperty13": "ProvisionCall.message.data.attributes.userUniqueId~#~char"
},
"call": [{
"name": "ManagerIDCall",
"connection": "userAuth",
"showResponse": true,
"url": "https://******/users?ids=email:${userManager.email}",
"httpMethod": "GET",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/vnd.api+json"
},
"httpContentType": "application/vnd.api+json",
"successResponses": {
"statusCode": [200]
},
"unsuccessResponses": {
"statusCode": [400, 401]
}
}, {
"name": "ProvisionCall",
"connection": "userAuth",
"showResponse": true,
"url": "https://******/users",
"httpMethod": "POST",
"httpParams": "{\"data\":{\"type\":\"user\", \"attributes\":{\"userUniqueId\":\"${user.username}\", \"email\":\"${user.email}\", \"fields\":{\"First Name\":\"${user.firstname}\", \"Last Name\": \"${user.lastname}\", \"Function\": \"${user.departmentname}\", \"Organization Name\": \"${user.companyname}\", \"Loc Country Description\":\"${user.country}\"}, \"name\": \"${user.displayname == null? user.lastname +', '+ user.firstname :user.displayname}\", \"roles\":[\"Learner\"], \"userType\":\"INTERNAL\", \"profile\": \"${user.title}\"}, \"relationships\":{\"manager\":{\"data\":{\"id\":\"${response.ManagerIDCall.message.data[0].id}\", \"type\":\"user\"}}}}}",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/vnd.api+json"
},
"httpContentType": "application/vnd.api+json",
"successResponses": {
"statusCode": [200]
},
"unsuccessResponses": {
"statusCode": [400,401]
}
}]
}

Logs:

2023-06-01/11:56:55.244 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - getHttpClient - HttpClientBuilder.create().build() called.
2023-06-01/11:56:55.275 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - 
2023-06-01/11:56:55.275 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestUtilService - pullObjectsByRest - responseStatusCode ::400
2023-06-01/11:56:55.276 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Entered getResponseHeaders method
2023-06-01/11:56:55.276 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - responseError : BAD_REQUEST
2023-06-01/11:56:55.276 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - isAuthError: true
2023-06-01/11:56:55.276 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Access token expired. throwing BAD_REQUEST / [BAD_REQUEST] exception for retry
2023-06-01/11:56:55.276 [{}] [quartzScheduler_Worker-2]  ERROR rest.RestProvisioningService - Exception in pullObjectsByRest :BAD_REQUEST
2023-06-01/11:56:55.276 [{}] [quartzScheduler_Worker-2]  ERROR rest.RestProvisioningService - Inside token Expiry Exception block. connectionParamMap.refreshTryCount : 4
2023-06-01/11:56:55.276 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Incrementing connectionParamMap.refreshTryCount : 5
2023-06-01/11:56:55.276 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - maxRefreshTryCount : 5
2023-06-01/11:56:55.276 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestUtilService - Calling https://*****************/oauth/token/refresh
2023-06-01/11:56:55.276 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - isFipsEnabled = false
2023-06-01/11:56:55.277 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - getHttpClient - sslParams : null
2023-06-01/11:56:55.277 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - getHttpClient - proxyParams : null
2023-06-01/11:56:55.277 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - getHttpClient - sslSocketFactory : null
2023-06-01/11:56:55.277 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - setting connection timeout to 10 seconds and request timeout to 60 seconds
2023-06-01/11:56:55.278 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - getHttpClient - HttpClientBuilder.create().build() called.
2023-06-01/11:56:55.345 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestUtilService - fetching result from response.responseText
2023-06-01/11:56:55.346 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestUtilService - connectionid:: null
2023-06-01/11:56:55.349 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - access token populated for oauth authentication..
2023-06-01/11:56:55.404 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Exception while iterating Http Map instance
groovy.lang.MissingPropertyException: No such property: type for class: java.lang.String
Possible solutions: bytes
at com.saviynt.provisoning.rest.RestProvisioningService.doHttpParamsBinding(RestProvisioningService.groovy:3691)
at com.saviynt.provisoning.rest.RestProvisioningService.populateHttpParamsForOauth(RestProvisioningService.groovy:3508)
at com.saviynt.provisoning.rest.RestProvisioningService.populateHttpParams(RestProvisioningService.groovy:3381)
at com.saviynt.provisoning.rest.RestProvisioningService.populateHttpBeforeRetry(RestProvisioningService.groovy:4550)
at com.saviynt.provisoning.rest.RestProvisioningService.isErrorRetry(RestProvisioningService.groovy:4520)
at com.saviynt.provisoning.rest.RestProvisioningService.retryAfterFailure(RestProvisioningService.groovy:4504)
at com.saviynt.provisoning.rest.RestProvisioningService.pullObjectsByRest(RestProvisioningService.groovy:4488)
at com.saviynt.provisoning.rest.RestProvisioningService.isErrorRetry(RestProvisioningService.groovy:4524)
at com.saviynt.provisoning.rest.RestProvisioningService.retryAfterFailure(RestProvisioningService.groovy:4504)
at com.saviynt.provisoning.rest.RestProvisioningService.pullObjectsByRest(RestProvisioningService.groovy:4488)
at com.saviynt.provisoning.rest.RestProvisioningService.isErrorRetry(RestProvisioningService.groovy:4524)
at com.saviynt.provisoning.rest.RestProvisioningService.retryAfterFailure(RestProvisioningService.groovy:4504)
at com.saviynt.provisoning.rest.RestProvisioningService.pullObjectsByRest(RestProvisioningService.groovy:4488)
at com.saviynt.provisoning.rest.RestProvisioningService.isErrorRetry(RestProvisioningService.groovy:4524)
at com.saviynt.provisoning.rest.RestProvisioningService.retryAfterFailure(RestProvisioningService.groovy:4504)
at com.saviynt.provisoning.rest.RestProvisioningService.pullObjectsByRest(RestProvisioningService.groovy:4488)
at com.saviynt.provisoning.rest.RestProvisioningService.isErrorRetry(RestProvisioningService.groovy:4524)
at com.saviynt.provisoning.rest.RestProvisioningService.retryAfterFailure(RestProvisioningService.groovy:4504)
at com.saviynt.provisoning.rest.RestProvisioningService.pullObjectsByRest(RestProvisioningService.groovy:4488)
at com.saviynt.provisoning.rest.RestProvisioningService.createNewUser(RestProvisioningService.groovy:2734)
at com.saviynt.provisoning.rest.RestProvisioningService$_createAccount_closure13.doCall(RestProvisioningService.groovy:2133)
at com.saviynt.provisoning.rest.RestProvisioningService.createAccount(RestProvisioningService.groovy:1955)
at com.saviynt.ecm.services.ArsTaskService.createAccountTarget(ArsTaskService.groovy:10549)
at com.saviynt.ecm.services.ArsTaskHelperService$_whenTaskTypeIsThreeNewAccountAccess_closure50.doCall(ArsTaskHelperService.groovy:3002)
at com.saviynt.ecm.services.ArsTaskHelperService.whenTaskTypeIsThreeNewAccountAccess(ArsTaskHelperService.groovy:2993)
at com.saviynt.ecm.services.ArsTaskHelperService$_completeAutoProvTasksUpgraded_closure1.doCall(ArsTaskHelperService.groovy:162)
at com.saviynt.ecm.services.ArsTaskHelperService.completeAutoProvTasksUpgraded(ArsTaskHelperService.groovy:147)
at MultipleProvisioningJob.execute(MultipleProvisioningJob.groovy:222)
at org.quartz.core.JobRunShell.run(JobRunShell.java:199)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:546)
2023-06-01/11:56:55.413 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Inside pullObjectsByRest
2023-06-01/11:56:55.413 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - 
2023-06-01/11:56:55.414 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - isFipsEnabled = false
2023-06-01/11:56:55.414 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - getHttpClient - sslParams : null
2023-06-01/11:56:55.414 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - getHttpClient - proxyParams : null
2023-06-01/11:56:55.414 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - getHttpClient - sslSocketFactory : null
2023-06-01/11:56:55.414 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - setting connection timeout to 10 seconds and request timeout to 60 seconds
2023-06-01/11:56:55.414 [{}] [quartzScheduler_Worker-2]  DEBUG services.HttpClientUtilityService - getHttpClient - HttpClientBuilder.create().build() called.
2023-06-01/11:56:55.443 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - 
2023-06-01/11:56:55.443 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestUtilService - pullObjectsByRest - responseStatusCode ::400
2023-06-01/11:56:55.443 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Entered getResponseHeaders method
2023-06-01/11:56:55.443 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - responseError : BAD_REQUEST
2023-06-01/11:56:55.444 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - isAuthError: true
2023-06-01/11:56:55.444 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Access token expired. throwing BAD_REQUEST / [BAD_REQUEST] exception for retry
2023-06-01/11:56:55.444 [{}] [quartzScheduler_Worker-2]  ERROR rest.RestProvisioningService - Exception in pullObjectsByRest :BAD_REQUEST
2023-06-01/11:56:55.444 [{}] [quartzScheduler_Worker-2]  ERROR rest.RestProvisioningService - Inside token Expiry Exception block. connectionParamMap.refreshTryCount : 5
2023-06-01/11:56:55.444 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Incrementing connectionParamMap.refreshTryCount : 6
2023-06-01/11:56:55.444 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - maxRefreshTryCount : 5
2023-06-01/11:56:55.444 [{}] [quartzScheduler_Worker-2]  ERROR rest.RestProvisioningService - Exception in token refresh : null
2023-06-01/11:56:55.444 [{}] [quartzScheduler_Worker-2]  ERROR rest.RestProvisioningService - Error WebService call failed After retrying 5 times with responseStatusCode-null, Failed url-https://*************/users, Error Message - null
2023-06-01/11:56:55.444 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Decrementing connectionParamMap.refreshTryCount : 5
2023-06-01/11:56:55.446 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Decrementing connectionParamMap.refreshTryCount : 4
2023-06-01/11:56:55.448 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Decrementing connectionParamMap.refreshTryCount : 3
2023-06-01/11:56:55.450 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Decrementing connectionParamMap.refreshTryCount : 2
2023-06-01/11:56:55.452 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Decrementing connectionParamMap.refreshTryCount : 1
2023-06-01/11:56:55.454 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - Decrementing connectionParamMap.refreshTryCount : 0
2023-06-01/11:56:55.456 [{}] [quartzScheduler_Worker-2]  ERROR rest.RestProvisioningService - Call response: null
2023-06-01/11:56:55.456 [{}] [quartzScheduler_Worker-2]  ERROR rest.RestProvisioningService - callResponseMap: [:]
2023-06-01/11:56:55.456 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - showResponse: true
2023-06-01/11:56:55.456 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - createNewUser - temp.status - Failed
2023-06-01/11:56:55.456 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestProvisioningService - doBreak: true
2023-06-01/11:56:55.466 [{}] [quartzScheduler_Worker-2]  DEBUG rest.RestUtilService - Exception in RestUtil.getAt : groovy.lang.MissingPropertyException: No such property: data for class: java.lang.String
2023-06-01/11:56:55.466 [{}] [quartzScheduler_Worker-2]  DEBUG println.PrintlnToLogger - Println :: | Error groovy.lang.MissingPropertyException: No such property: data for class: java.lang.String
2023-06-01/11:56:55.466 [{}] [quartzScheduler_Worker-2]  DEBUG println.PrintlnToLogger - Println :: | Error  at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
2023-06-01/11:56:55.466 [{}] [quartzScheduler_Worker-2]  DEBUG println.PrintlnToLogger - Println :: | Error  at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:273)
2023-06-01/11:56:55.466 [{}] [quartzScheduler_Worker-2]  DEBUG println.PrintlnToLogger - Println :: | Error  at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
2023-06-01/11:56:55.466 [{}] [quartzScheduler_Worker-2]  DEBUG println.PrintlnToLogger - Println :: | Error  at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
2023-06-01/11:56:55.466 [{}] [quartzScheduler_Worker-2]  DEBUG println.PrintlnToLogger - Println :: | Error  at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:55)
2023-06-01/11:56:55.466 [{}] [quartzScheduler_Worker-2]  DEBUG println.PrintlnToLogger - Println :: | Error  at 
3 REPLIES 3

SB
Saviynt Employee
Saviynt Employee

This looks like an issue with your Connection JSON. Can you share the same.


Regards,
Sahil

shivmano
Regular Contributor III
Regular Contributor III

Thanks. Issue was with passing the token as authHeadername. removing that and making some changes fixed it 

rushikeshvartak
All-Star
All-Star

Share response of provision call api


Regards,
Rushikesh Vartak
If you find the response useful, kindly consider selecting Accept As Solution and clicking on the kudos button.