# isRetryableUpdateError

> **isRetryableUpdateError**(`error`): `boolean`

Defined in: [core/src/errors/index.ts:622](https://github.com/B3Pay/ic-reactor/blob/f1956947ae037304fce1675a38695964c1aa9e32/packages/core/src/errors/index.ts#L622)

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](https://ic-reactor.b3pay.net/v3/libs/functions/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.

## Parameters

### error

`unknown`

## Returns

`boolean`