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

Failed url: responseStatusCode null

mayankshah
New Contributor III
New Contributor III

 

Below are the things which are already performed for establishing connectivity:

1. Whitelisted the hostname on port 80 and 443

2. Uploaded SSL cert
3. Verified URL and response in postman
4. Checked if config JSON is present so that it is not getting timed out.

mayankshah_0-1707897903248.png

 

 

ImportAccountEntJSON used with hardcoding apikey value-

{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"statusColumn": "customproperty1",
"activeStatus": [
"A"
],
"deleteLinks": true,
"accountThresholdValue": 10000,
"correlateInactiveAccounts": true,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": true
},
"includeExistingInActiveAccounts": true,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxxxx/xxxx/api/os/BP-SAV-USERGROUP?oslc.select=maxuserid,userid,status",
"httpHeaders": {
"Authorization": "apikey xxxxxxxxxx",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "rdfs:member",
"keyField": "name",
"statusConfig": {
"active": "A",
"inactive": "T"
},
"colsToPropsMap": {
"accountID": "spi:maxuserid~#~char",
"name": "spi:userid~#~char",
"displayName": "spi:userid~#~char",
"status": "spi:status~#~char",
"customproperty1": "spi:status~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"Groups": {
"listPath": "spi:groupuser",
"idPath": "spi:groupname",
"keyField": "entitlement_value"
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Groups": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxxxxx/xxxxx/api/os/MXAPIGROUP?oslc.select=groupname,description,maxgroupid",
"httpHeaders": {
"Authorization": "apikey xxxxxxxx",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "rdfs:member",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "spi:maxgroupid~#~char",
"entitlement_value": "spi:groupname~#~char",
"description": "spi:description~#~char"
},
"disableDeletedEntitlements": true
}
}
}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}

 

 

 

Error: Failed url-http://xxxxxx/xxxx/api/os/BP-SAV-USERGROUP?oslc.select=maxuserid,userid,status with Error Message-null

Log details:

called executeGetRequestWithHeaders for api...
after calling executeRequestWithHeaders for api...
called api...
timeout validated for api...
got response for api...
Got showLogs = true
Got Webservice API Response: [headers:[Date: Wed, 14 Feb 2024 07:45:04 GMT, X-Powered-By: Servlet/3.0, X-Frame-Options: SAMEORIGIN, X-Content-Type-Options: nosniff, X-XSS-Protection: 1, Access-Control-Allow-Origin: *, Access-Control-Allow-Credentials: true, Access-Control-Allow-Methods: GET,POST,PUT,DELETE, Access-Control-Allow-Headers: maxauth,x-method-override,patchtype,content-type,accept,x-public-uri,properties, Access-Control-Expose-Headers: csrftoken,Location,maxrowstamp, Expires: Thu, 01 Dec 1994 16:00:00 GMT, Cache-Control: no-cache=set-cookie=******set-cookie":"******"
pullObjectsByRest - responseStatusCode ::400
Exception in pullObjectsByRest :400
Inside token Expiry Exception block. connectionParamMap.refreshTryCount : 5
Incrementing connectionParamMap.refreshTryCount : 6
maxRefreshTryCount : 5
Exception in token refresh : null
Error WebService call failed After retrying 5 times with responseStatusCode-null, Failed url-http://xxxxxxx/xxxxxx/api/os/MXAPIGROUP?oslc.select=groupname,description,maxgroupid, Error Message - null
4 REPLIES 4

Raghu
Regular Contributor III
Regular Contributor III

@mayankshah 

can  you check token please , looks like 400 authentication issue.

responseStatusCode ::400 Exception in pullObjectsByRest :400 Inside token Expiry Exception block. connectio


Thanks,
Raghu
If this reply answered your question, Please Accept As Solution and hit Kudos.

mayankshah
New Contributor III
New Contributor III

apikey value is matching and same in both in postman and in ImportAccountEntJSON JSON. For debugging purpose right now, I am not using Connection JSON to pass the accesstoken value directly to ImportAccountEntJSON JSON therefore hardcoding it there.

Raghu
Regular Contributor III
Regular Contributor III

@mayankshah  try like below , May i know it is working in postman?

"httpHeaders": {
"X-Risk-Token": "${access_token}",
"Accept": "application/json"
},

time out issue may it occurring try use below config also

ConfigJson:

{
"connectionTimeoutConfig": {
"connectionTimeout": 100,
"readTimeout": 60,
"writeTimeout": 60,
"retryWait": 2,
"retryCount": 3
}
}


Thanks,
Raghu
If this reply answered your question, Please Accept As Solution and hit Kudos.

mayankshah
New Contributor III
New Contributor III

Using below httpHeaders worked for the hardcoding accountentimport JSON worked:

"httpHeaders": {
"apikey": "xxxxxxx",
"Accept": "application/json"
}

 

Below is the final connection json:

{
"authentications": {
"acctAuth": {
"authType": "oauth2",
"httpHeaders": {
"contentType": "application/json"
},
"authError": [
"InvalidAuthenticationToken",
"AuthenticationFailed"
],
"url": "xxxxxxxxx",
"httpMethod": "POST",
"httpContentType": "application/json",
"errorPath": "error.code",
"maxRefreshTryCount": 5,
"tokenResponsePath": "access_token",
"authHeaderName": "apikey",
"accessToken": "xxxxxxxxxxxxxxx,
"retryFailureStatusCode": []
}
}
}

 

Below is the final accountentimport JSON:

{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"statusColumn": "customproperty1",
"activeStatus": [
"A"
],
"deleteLinks": true,
"accountThresholdValue": 10000,
"correlateInactiveAccounts": true,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": true
},
"includeExistingInActiveAccounts": true,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxxxx/xxxx/api/os/BP-SAV-USERGROUP?oslc.select=maxuserid,userid,status",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "rdfs:member",
"keyField": "name",
"statusConfig": {
"active": "A",
"inactive": "T"
},
"colsToPropsMap": {
"accountID": "spi:maxuserid~#~char",
"name": "spi:userid~#~char",
"displayName": "spi:userid~#~char",
"status": "spi:status~#~char",
"customproperty1": "spi:status~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"Groups": {
"listPath": "spi:groupuser",
"idPath": "spi:groupname",
"keyField": "entitlement_value"
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Groups": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxxxxx/xxxxx/api/os/MXAPIGROUP?oslc.select=groupname,description,maxgroupid",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "rdfs:member",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "spi:maxgroupid~#~char",
"entitlement_value": "spi:groupname~#~char",
"description": "spi:description~#~char"
},
"disableDeletedEntitlements": true
}
}
}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}