The CreatorCon Call for Content is officially open! Get started here.

Method failed(method name) with code 400 for one Server endpoint but working for other server endpoi

Arka Banerjee1
Tera Contributor
  • Hi All

 

We have an integration set up with Sailpoint IIQ.

 

We are sending a post call to IIQ from SNOW, and it is working with a 201 success if we are using one of the server endpoints of IIQ in the call, but if we are using the other server endpoint for our POST call, it is failing with a Method failed(method name) with code : 400 error, with the response stating : unrecognized field "some IIQ stuff(client data)" (class.***(client data, some iiq stuff)), not marked as ignorable(0 known properties) at [Source : (some iiq stuff(client data)))] (through reference chain: sailpoint.***client data).

 

We also have a get method for fetching some entitlements from IIQ but in that one, it is able to fetch for both the IIQ server endpoints. 

 

Also, if we are doing the same post call from postman for the IIQ server endpoint for which it is failing in our rest call in SNOW, it is showing a 201 success.

 

I am really confused as to which way the issue lies. Can someone kindly help on the same.

 

@Ankur Bawiskar, @Chuck Tomasi Can you kindly help me with the above issue, its very business critical..

6 REPLIES 6

Ratnakar7
Mega Sage

Hi @Arka Banerjee1 ,

 

It sounds like the issue may be related to the specific server endpoint being used in the POST call. It's possible that the server endpoint is expecting a slightly different format or structure for the data being sent in the POST request.

One thing you can try is to compare the request being sent from ServiceNow to the successful request being sent from Postman for both server endpoints. Look for any differences in the request headers, body, or URL parameters.

You can also check the IIQ server logs to see if there are any error messages or warnings that might provide more information about the issue.

It's also possible that there is a difference in the version or configuration of IIQ between the two server endpoints, which could be causing the issue.

 

Thanks,

Ratnakar

Hi Ratnakar,

 

Thanks for your reply. 

 

The request header, body(JSON content) and URL parameters(if by URL parameters you mean the endpoint) is identical that we are using in Servicenow and POSTMAN for both the server endpoints.

 

Regarding the logs. they are just getting it as a 400 413 error, no more information available for logs from their end..., but by the error response I am receiving, I searched in google and saw that this error  Unrecognized field XXX, not marked as ignorable" error comes when you try to parse JSON to a Java object which doesn't contain all the fields in the JSON. PFB JSON that we are sending for testing

 

{
"urn:ietf:params:scim:schemas:sailpoint:1.0:LaunchedWorkflow": {
"workflowName": "client data",
"input": [
{
"key": "client data",
"value": "client data"
},
{
"key": "client data",
"value": "client data"
},
{
"key": "client data",
"value": "client data"
},
{
"key": "client data",
"value": "client data"
},
{
"key": "client data",
"value": "client data"
},
{
"key": "client data",
"value": "none"
},
{
"key": "client data",
"value": {
"accounts":[
{
"application": "client data",
"attributes": [
{
"args": {
"ritmSysId": "client data",
"taskSysId": "client data"
},
"name": "client data",
"op": "client data",
"value": "client data"
},
{
"args": {
"ritmSysId": "client data",
"taskSysId": "client data"
},
"name": "client data",
"op": "client data",
"value": "client data"
},
{
"args": {
"ritmSysId": "some sys_id",
"taskSysId": "some sys_id"
},
"name": "group_name",
"op": "client data",
"value": "client data"
}
],
"op": "client data"
}
]
},
"type": "client data"
}
]
}
}

And the error response as below: 

Unrecognized field "urn:ietf:params:scim:schemas:sailpoint:1.0:LaunchedWorkflow" (class client data, not marked as ignorable (0 known properties: ])
at [Source: (client data); line: 2, column: 67] (through reference chain: client data["client data"])

 

Now the coding is done on their end in Java and if they are able to parse the JSON for one server endpoint, then why not for the other one when both the server endpoints are serving the same VIP URL.., and able to parse for both server endpoints when sending the JSON from postman..

 

Also, just to not, the issue is there accross all instances(dev, qa and prod) where it is getting the 400 error for the 02 server endpoint(02 server endpoint being different accross different instances)

Hi, just an update. Its failing in both postman and snow for one server endpoint and working for the other in both in prod and qa. 

 

Now suddenly, I am getting a request not sent to uri= java.net.sockettimeoutexception connect timed out in our dev instance for both server endpoints. Can you please help on the same as well..

Hi @Arka Banerjee1 ,

 

It seems like the issue may be related to the JSON payload that you are sending to the IIQ endpoint. The error message indicates that the Java object being used to parse the JSON payload does not contain all the fields in the JSON.

One possible reason why the payload may be failing for one server endpoint but not the other could be due to differences in the configuration or version of the IIQ server endpoints. It's possible that one endpoint may be expecting a slightly different payload format or have different requirements for the data being sent.

You mentioned that the issue occurs across all instances (dev, qa, and prod) for the failing server endpoint. This suggests that the issue may be related to the payload itself rather than any specific environment.

As for the "request not sent to uri= java.net.sockettimeoutexception connect timed out" error, it is typically caused by the client not receiving a response from the server within the timeout period. This could be due to network issues or the server being overloaded. You may need to investigate further by checking your network connection, server status, or contacting your IT team for assistance.

 

Thanks,

Ratnakar