Skip to content

Commit

Permalink
fix: salesforce: handle ECONNABORTED error (#2732)
Browse files Browse the repository at this point in the history
* fix: salesforce: handle ECONNABORTED error

* chore: added status codes to universal error code handler

* chore: added error codes to salesforce error code handler

* fix: using correct error response

* comment addressed+1
  • Loading branch information
anantjain45823 authored Oct 24, 2023
1 parent 4079ec6 commit 6b23a9b
Show file tree
Hide file tree
Showing 4 changed files with 135 additions and 1 deletion.
8 changes: 8 additions & 0 deletions src/adapters/utils/networkUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,14 @@ const nodeSysErrorToStatus = (code) => {
status: 500,
message: '[ETIMEDOUT] :: Operation timed out',
},
EAI_AGAIN: {
status: 500,
message: '[EAI_AGAIN] :: Temporary failure in name resolution',
},
ECONNABORTED: {
status: 500,
message: '[ECONNABORTED] :: Connection aborted',
},
};
return sysErrorToStatusMap[code] || { status: 400, message: `[${code}]` };
};
Expand Down
10 changes: 10 additions & 0 deletions test/__mocks__/data/salesforce/proxy_response.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
{
"https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/101": {
"message": "Connection Aborted",
"name": "Error",
"code": "ECONNABORTED"
},
"https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/102": {
"message": "DNS not found",
"name": "Error",
"code": "EAI_AGAIN"
},
"https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/1": {
"response": {
"data": {
Expand Down
66 changes: 66 additions & 0 deletions test/__tests__/data/salesforce_proxy_input.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,70 @@
[
{
"type": "REST",
"files": {},
"method": "POST",
"userId": "",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer token"
},
"version": "1",
"endpoint": "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/101",
"body": {
"XML": {},
"FORM": {},
"JSON": {
"Email": "[email protected]",
"Company": "sbermarket.ru",
"LastName": "Корнилов",
"FirstName": "Денис",
"LeadSource": "App Signup",
"account_type__c": "free_trial"
},
"JSON_ARRAY": {}
},
"metadata": {
"destInfo": {
"authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf"
}
},
"params": {
"destination": "salesforce"
}
},
{
"type": "REST",
"files": {},
"method": "POST",
"userId": "",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer token"
},
"version": "1",
"endpoint": "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/102",
"body": {
"XML": {},
"FORM": {},
"JSON": {
"Email": "[email protected]",
"Company": "sbermarket.ru",
"LastName": "Корнилов",
"FirstName": "Денис",
"LeadSource": "App Signup",
"account_type__c": "free_trial"
},
"JSON_ARRAY": {}
},
"metadata": {
"destInfo": {
"authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf"
}
},
"params": {
"destination": "salesforce"
}
},
{
"type": "REST",
"files": {},
Expand Down
52 changes: 51 additions & 1 deletion test/__tests__/data/salesforce_proxy_output.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,54 @@
[
{
"output": {
"status": 500,
"message": "Salesforce Request Failed - due to \"\"[ECONNABORTED] :: Connection aborted\"\", (Retryable) during Salesforce Response Handling",
"destinationResponse": {
"response": "[ECONNABORTED] :: Connection aborted",
"status": 500,
"rudderJobMetadata": {
"destInfo": {
"authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf"
}
}
},
"statTags": {
"destType": "SALESFORCE",
"errorCategory": "network",
"destinationId": "Non-determininable",
"workspaceId": "Non-determininable",
"errorType": "retryable",
"feature": "dataDelivery",
"implementation": "native",
"module": "destination"
}
}
},
{
"output": {
"status": 500,
"message": "Salesforce Request Failed - due to \"\"[EAI_AGAIN] :: Temporary failure in name resolution\"\", (Retryable) during Salesforce Response Handling",
"destinationResponse": {
"response": "[EAI_AGAIN] :: Temporary failure in name resolution",
"status": 500,
"rudderJobMetadata": {
"destInfo": {
"authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf"
}
}
},
"statTags": {
"destType": "SALESFORCE",
"errorCategory": "network",
"destinationId": "Non-determininable",
"workspaceId": "Non-determininable",
"errorType": "retryable",
"feature": "dataDelivery",
"implementation": "native",
"module": "destination"
}
}
},
{
"output": {
"status": 200,
Expand Down Expand Up @@ -207,4 +257,4 @@
}
}
}
]
]

0 comments on commit 6b23a9b

Please sign in to comment.