Node SDK · Errors
The SDK exports these recorder error classes:
HttpError. Non-2xx from the ingestion endpoint. CheckstatusCode,body,transient(truefor 5xx and 429, which are retried), andretryAfter: the server'sRetry-Afterin ms,0when absent or not a whole number of seconds.NetworkError. The request failed before any response (DNS, connection refused, reset).transientistrue, so it is retried, andcauseholds the underlying error.EncodeError. An event could not be serialized to JSON, for example aBigIntor a circular reference in metadata. Never retried: a buffered batch that hits it is split and the bad event is dropped asrejected.BufferFullError. Overflow whenoverflowPolicy: "error".DrainTimeoutError.close()exceededdrainTimeoutwith pending events.
A request that exceeds requestTimeout or flushTimeout rejects with an error named TimeoutError, which is retried.
If you write your own inner recorder, set transient: true on errors worth retrying. BufferedRecorder retries those and errors named TimeoutError, and treats anything else, such as a plain TypeError, as permanent. See What happens when delivery fails.
Minter calls reject with a plain Error on client-side validation failures (invalid tenantId, malformed wildcard), MinterError on HTTP 400/401/404, or a transport error on network failure.