3b7e47e775
📦 Preview packages (pkg.pr.new) / Build and publish previews (push) Has been cancelled
API client requests had no timeout, so a request reusing a half-open keep-alive connection could hang until the runtime's socket default (minutes) rather than failing fast, and the retry logic never engaged because a hang produces no response to react to. Requests now run under a default 30s timeout (configurable per request via timeoutInMs); on timeout the request is aborted and the retry reconnects on a fresh socket. Caller cancellations are not retried.
14 lines
773 B
Markdown
14 lines
773 B
Markdown
---
|
|
"@trigger.dev/core": patch
|
|
---
|
|
|
|
API requests now run under a request timeout (default 30s), so a half-open keep-alive connection can no longer hang a call until the runtime's socket default (minutes). On timeout the request aborts and retries on a fresh connection, and the retry is duplicate-safe via the request idempotency key. This mostly affects long-lived processes that reuse connections, including tasks that trigger other tasks.
|
|
|
|
Set the timeout per request, per client, or globally (most specific wins, `0` disables):
|
|
|
|
```ts
|
|
tasks.trigger("my-task", payload, undefined, { timeoutInMs: 10_000 }); // per request
|
|
new TriggerClient({ accessToken, requestOptions: { timeoutInMs: 10_000 } }); // per client
|
|
// or globally: TRIGGER_API_REQUEST_TIMEOUT_MS=10000
|
|
```
|