From 4dcf82b1ca10d050d0dd838e1748759fc442c89a Mon Sep 17 00:00:00 2001 From: ibraheem-latent Date: Thu, 19 Feb 2026 14:25:56 -0800 Subject: [PATCH 1/2] handle new error fmt --- async_substrate_interface/async_substrate.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/async_substrate_interface/async_substrate.py b/async_substrate_interface/async_substrate.py index 5e9c8d6..dcc5ceb 100644 --- a/async_substrate_interface/async_substrate.py +++ b/async_substrate_interface/async_substrate.py @@ -4142,6 +4142,14 @@ async def result_handler(message: dict, subscription_id) -> tuple[dict, bool]: "extrinsic_hash": "0x{}".format(extrinsic.extrinsic_hash.hex()), "finalized": False, }, True + + elif "params" in message and message["params"].get("result") == "invalid": + failure_message = f"Subscription {subscription_id} invalid: {message}" + async with self.ws as ws: + await ws.unsubscribe(subscription_id) + logger.error(failure_message) + raise SubstrateRequestException(failure_message) + return message, False if wait_for_inclusion or wait_for_finalization: From e464b978b470b22663d705b5caecf85ebc7e065f Mon Sep 17 00:00:00 2001 From: ibraheem-latent Date: Thu, 19 Feb 2026 15:19:49 -0800 Subject: [PATCH 2/2] update sync_substrate --- async_substrate_interface/sync_substrate.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/async_substrate_interface/sync_substrate.py b/async_substrate_interface/sync_substrate.py index 86f6ec2..f6ff5b6 100644 --- a/async_substrate_interface/sync_substrate.py +++ b/async_substrate_interface/sync_substrate.py @@ -3273,6 +3273,13 @@ def result_handler(message: dict, subscription_id) -> tuple[dict, bool]: "extrinsic_hash": "0x{}".format(extrinsic.extrinsic_hash.hex()), "finalized": False, }, True + + elif "params" in message and message["params"].get("result") == "invalid": + failure_message = f"Subscription {subscription_id} invalid: {message}" + self.rpc_request("author_unwatchExtrinsic", [subscription_id]) + logger.error(failure_message) + raise SubstrateRequestException(failure_message) + return message, False if wait_for_inclusion or wait_for_finalization: