MulticallRetryable

Documentation for eth_defi.event_reader.multicall_batcher.MulticallRetryable exception.

exception MulticallRetryable

Bases: Exception

Transient Multicall transport or payload failure.

This exception is used for failures that can plausibly recover by retrying the same historical block with a smaller batch size, a different fallback endpoint, or after a short provider outage. Typical examples are HTTP timeouts, connection failures, request-rate errors and out-of-gas Multicall payloads caused by an expensive target contract.

It deliberately does not represent missing historical state. For errors such as missing trie node, metadata is not found and layer stale, MulticallHistoricalDataUnavailable is raised instead. Retrying those errors with a smaller batch wastes RPC capacity because the selected node lacks the data regardless of payload size.

Callers may retry this error locally. When using a multi-provider RPC configuration, normal fallback rotation is also appropriate.

Retain transport diagnostics and the completed physical-request prefix.

Reduced-batch recovery can fail after earlier fragments succeeded. The retry coordinator needs their outputs to resume at the first unread input instead of charging the provider again for completed work.

Parameters
  • message – Failure description from the transport wrapper.

  • status_code – HTTP status when available, including rate limits.

  • headers – Response headers used by provider retry policy.

  • completed_results – Ordered (success, return_data) prefix.

Returns

None.

__init__(message, status_code=None, headers=None, completed_results=None)

Retain transport diagnostics and the completed physical-request prefix.

Reduced-batch recovery can fail after earlier fragments succeeded. The retry coordinator needs their outputs to resume at the first unread input instead of charging the provider again for completed work.

Parameters
  • message (str) – Failure description from the transport wrapper.

  • status_code (Optional[int]) – HTTP status when available, including rate limits.

  • headers (Optional[dict]) – Response headers used by provider retry policy.

  • completed_results (Optional[list[tuple[bool, bytes]]]) – Ordered (success, return_data) prefix.

Returns

None.

Return type

None

completed_results

Ordered (success, return_data) from physical chunks completed before this failure. Retries resume after these inputs, not at zero.

__new__(**kwargs)
add_note(note, /)

Add a note to the exception

with_traceback(tb, /)

Set self.__traceback__ to tb and return self.