Error handling and debugging triggered actions and webhooks
Overview
Triggered actions and webhooks are retried if they fail to successfully execute their action. This could be the result of timing out or receiving an explicit error.
You can retrieve the logs of webhook and triggered action executions from the Skedulo API. Webhooks and triggered actions appear in the same log.
Retries
HTTP request timeouts
If no response is received within 25 seconds of sending an HTTP request, then it will be considered timed-out and retried according to the approximate values in the table below, up to a total of six tries.
Unsuccessful HTTP requests
Similarly, if the response does not have a success status code (2XX), then the request will be retried according to the approximate values in the table below.
HTTP requests are tried up to six times in total.
Unsuccessful triggered actions
Triggered actions that send an SMS (see the triggered actions section for information on action types) are tried up to five times in total.
Retry intervals
The intervals between retries increase in duration incrementally. The approximate values are as follows:
Retry number | HTTP - time elapsed before retry | send_sms - time elapsed before retry |
---|---|---|
1 | 5 seconds | 5 seconds |
2 | 30 seconds | 30 seconds |
3 | 5 minutes | 5 minutes |
4 | 30 minutes | 15 minutes |
5 | 3 hours | N/A |
Debug webhooks and triggered actions
Various filters can be used to find logs you are interested in, including sourceId
to match on the ID of the configured webhook or triggered action, and isWebhook
to show only webhooks or only triggered actions. For more information, see the Skedulo API reference documentation.
Note that the logs include intermediate stages within the execution lifecycle of the underlying triggered action. For example, a deferred webhook may produce three logs: one for creating a scheduled task, one for a fetch_object
trigger, and another for the call_url
action.
Example log
This is the log for a call_url
triggered action, which shows the URL called, the data sent, the result of the call and the overall result of the operation.
{
"id": 122886092,
"tenantId": "00D1I000001WMhdUAG",
"sourceId": "41dc51a3-3701-4883-927f-7fa9efba882b",
"created": "2023-07-11T01:10:53.469833Z",
"data": {
"url": "https://a250-44-239-236-138.ngrok.io",
"body": {
"data": {
"jobs": {
"End": "2023-07-11T02:11:43.000Z",
"UID": "a0E8W00000cbnK8UAI",
"Name": "JOB-11824249",
"Start": "2023-07-11T01:11:43.000Z",
"Duration": 60,
"CreatedDate": "2023-07-11T01:10:44.000Z",
"Description": null,
"JobAllocations": []
}
}
},
"headers": {},
"action_type": "call_url"
},
"retry": 1,
"referenceId": 122886087,
"started": "2023-07-11T01:10:53.481882Z",
"completed": "2023-07-11T01:10:54.006354Z",
"result": {
"type": "http_response",
"status": 200,
"headers": {
"Date": "Tue, 11 Jul 2023 01:10:53 GMT",
"Content-Type": "text/plain",
"Content-Length": "23",
"Ngrok-Trace-Id": "70fe364efacb8664ed79f78c88e9efe3",
"Ngrok-Agent-Ips": "44.239.236.138"
}
},
"attempts": [
{
"attempted": "2023-07-11T01:10:48.381321Z",
"error": {
"type": "http_response",
"status": 502,
"headers": {
"Date": "Tue, 11 Jul 2023 01:10:48 GMT",
"Content-Type": "text/html",
"Content-Length": "39041",
"Ngrok-Trace-Id": "03cae0dd43e1423eaaac5c96b4e82de0"
}
}
}
],
"status": "success"
}
Feedback
Was this page helpful?