From e613c1d9cb6cd950a9f088fef3021dd1f4ab68e6 Mon Sep 17 00:00:00 2001 From: Martin Kourim Date: Fri, 13 Feb 2026 17:33:43 +0100 Subject: [PATCH] fix(submit-api): handle MempoolTxTooSlow exceptions and improve retry logic --- cardano_node_tests/utils/submit_api.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cardano_node_tests/utils/submit_api.py b/cardano_node_tests/utils/submit_api.py index 0e5c22a7d..9b2fa17ba 100644 --- a/cardano_node_tests/utils/submit_api.py +++ b/cardano_node_tests/utils/submit_api.py @@ -1,6 +1,7 @@ """Utilities for `cardano-submit-api` REST service.""" import binascii +import contextlib import dataclasses import json import logging @@ -66,13 +67,16 @@ def post_cbor(*, cbor_file: clusterlib.FileType, url: str) -> requests.Response: if i > 1: LOGGER.warning("Resubmitting transaction to submit-api.") - try: + response = None + with contextlib.suppress(requests.exceptions.ReadTimeout): response = http_client.get_session().post( url, headers=headers, data=cbor_binary, timeout=60 ) - except requests.exceptions.ReadTimeout: + + if response is not None and not response and "MempoolTxTooSlow" in response.text: + # Repeat the request as the transaction didn't make it to mempool pass - else: + elif response is not None: break time.sleep(random.random())