Skip to content
IC Reactor

isRetryableUpdateError

isRetryableUpdateError(error): boolean

Defined in: core/src/errors/index.ts:622

Whether a failed update call can be sent again without the canister running it twice.

Every attempt at an update call is a new call under a new request id, so the IC cannot tell a retry from a second call and runs both. A retry is safe only when the failure proves the canister never ran the first attempt, and only a SysTransient rejection (reject code 2) does: the system could not take the call in. A transport failure can come after the replica accepted the call, a SysUnknown rejection says its outcome is unknown, and an HTTP error can come from a boundary node that had already passed the call on, so none of them is retryable here, although isRetryableReactorError retries them for a query method.

Reactor.getQueryRetry builds on it: a query of an update method that sets no retry of its own retries only what this accepts.

unknown

boolean