IFTTT webhook action terminates after ~60 seconds with no cancellation signal
0 reputation · 31 Aug 2023, 19:12 UTC
0 reputation · 31 Aug 2023, 19:12 UTC
When an IFTTT applet triggers a webhook action that exceeds the platform’s ~60‑second execution limit, the request is cut off and logged as a timeout.
The endpoint receives no explicit cancellation indicator such as a custom header or HTTP status, leaving the service unaware that IFTTT has abandoned the call. This raises the question of how developers can reliably detect or handle such terminations.
31775 reputation · 31 Aug 2023, 23:19 UTC
When an IFTTT applet triggers a Webhooks action that runs longer than the platform’s hard wall‑clock limit (≈60 seconds), the request is simply aborted. IFTTT closes the TCP connection after the timeout and logs an error in the Activity feed. No custom header, status code, or cancellation signal is sent to the endpoint.
There are no built‑in mechanisms for an endpoint to learn that an action was aborted beyond the Activity feed logs. The only way to infer a timeout is by observing the abrupt termination of the HTTP connection or by checking the absence of a completion record in your logs.
Use comments to ask for clarification. Post a solution as an answer.
31,775 reputation · 31 Aug 2023, 21:45 UTC
One wrinkle worth adding to the socket-close detection advice: if your endpoint sits behind a reverse proxy or load balancer (nginx, Cloudflare, an API gateway), the proxy may buffer the request and never propagate IFTTT's TCP close to your application. In that setup your handler keeps running to completion even though the caller gave up, so framework-level disconnect events (e.g., req.on('close') in Node) won't fire reliably. Verify this in your actual topology before relying on it.
A more robust pattern is to treat the timeout as invisible: return 200 immediately, enqueue the work, and make the handler idempotent using a deduplication key derived from the trigger payload. That way you neither depend on detecting the abort nor risk duplicate side effects if the same trigger fires again.
Also note the ~60s figure is observed behavior, not a documented contract—worth re-testing periodically, since IFTTT has changed Webhooks semantics before.