From 207ea244d7ed2145a1f2e35bc857862d41faf265 Mon Sep 17 00:00:00 2001 From: bdhimes Date: Sat, 11 Oct 2025 00:32:16 +0200 Subject: [PATCH 1/3] Finally! --- async_substrate_interface/async_substrate.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/async_substrate_interface/async_substrate.py b/async_substrate_interface/async_substrate.py index 105b93a..4c8509f 100644 --- a/async_substrate_interface/async_substrate.py +++ b/async_substrate_interface/async_substrate.py @@ -561,7 +561,7 @@ def __init__( self._received: dict[str, asyncio.Future] = {} self._received_subscriptions: dict[str, asyncio.Queue] = {} self._sending: Optional[asyncio.Queue] = None - self._send_recv_task = None + self._send_recv_task: Optional[asyncio.Task] = None self._inflight: dict[str, str] = {} self._attempts = 0 self._lock = asyncio.Lock() @@ -747,7 +747,7 @@ async def _start_receiving(self, ws: ClientConnection) -> Exception: elif isinstance(e, websockets.exceptions.ConnectionClosedOK): logger.debug("Websocket connection closed.") else: - logger.debug(f"Timeout occurred. Reconnecting.") + logger.debug(f"Timeout occurred.") return e async def _start_sending(self, ws) -> Exception: @@ -780,7 +780,7 @@ async def _start_sending(self, ws) -> Exception: elif isinstance(e, websockets.exceptions.ConnectionClosedOK): logger.debug("Websocket connection closed.") else: - logger.debug("Timeout occurred. Reconnecting.") + logger.debug("Timeout occurred.") return e async def send(self, payload: dict) -> str: @@ -856,7 +856,10 @@ async def retrieve(self, item_id: str) -> Optional[dict]: pass if self._send_recv_task is not None and self._send_recv_task.done(): if not self._send_recv_task.cancelled(): - if isinstance((e := self._send_recv_task.exception()), Exception): + if isinstance((e := self._send_recv_task.result()), Exception): + logger.exception(f"Websocket sending exception: {e}") + raise e + elif isinstance((e := self._send_recv_task.result()), Exception): logger.exception(f"Websocket sending exception: {e}") raise e await asyncio.sleep(0.1) From 06da1924ba9e0c12e9a48f387f3aeb8e6960c8f3 Mon Sep 17 00:00:00 2001 From: bdhimes Date: Sat, 11 Oct 2025 01:02:16 +0200 Subject: [PATCH 2/3] Thank you Abe --- async_substrate_interface/async_substrate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/async_substrate_interface/async_substrate.py b/async_substrate_interface/async_substrate.py index 4c8509f..7f5cb71 100644 --- a/async_substrate_interface/async_substrate.py +++ b/async_substrate_interface/async_substrate.py @@ -856,7 +856,7 @@ async def retrieve(self, item_id: str) -> Optional[dict]: pass if self._send_recv_task is not None and self._send_recv_task.done(): if not self._send_recv_task.cancelled(): - if isinstance((e := self._send_recv_task.result()), Exception): + if isinstance((e := self._send_recv_task.exception()), Exception): logger.exception(f"Websocket sending exception: {e}") raise e elif isinstance((e := self._send_recv_task.result()), Exception): From 28a5b54a908581e6aac7f02897e80531fe9f3e84 Mon Sep 17 00:00:00 2001 From: Roman Chkhaidze Date: Fri, 10 Oct 2025 17:14:13 -0700 Subject: [PATCH 3/3] add logic for manual run --- .github/workflows/check-sdk-tests.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-sdk-tests.yml b/.github/workflows/check-sdk-tests.yml index 1e68fd3..9e40b61 100644 --- a/.github/workflows/check-sdk-tests.yml +++ b/.github/workflows/check-sdk-tests.yml @@ -62,8 +62,16 @@ jobs: - name: Check out repository uses: actions/checkout@v4 - - name: Get labels from PR + - name: Skip label check for manual runs id: get-labels + if: ${{ github.event_name == 'workflow_dispatch' }} + run: | + echo "Manual workflow dispatch detected, skipping PR label check." + echo "run-sdk-tests=true" >> $GITHUB_OUTPUT + + - name: Get labels from PR + id: get-labels-pr + if: ${{ github.event_name == 'pull_request' }} run: | sleep 5 LABELS=$(gh api repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/labels --jq '.[].name')