algorandfoundation / algokit

One stop shop for all AlgoKit related repos
MIT License
26 stars 4 forks source link

Receive `algosdk.error.AlgodHTTPError: TransactionPool.Remember: txn dead: round 11 outside of 0--10` #3

Open hanpham32 opened 5 months ago

hanpham32 commented 5 months ago

Summary:

Receiving algosdk.error.AlgodHTTPError: TransactionPool.Remember: txn dead: round 11 outside of 0--10 after making more than 10 transactions

Am I hitting the rate limits or encountering node-specific restrictions that might affect transaction processing?

The error:

Traceback (most recent call last):
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/v2client/algod.py", line 104, in algod_request
    resp = urlopen(req)
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 525, in open
    response = meth(req, response)
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 634, in http_response
    response = self.parent.error(
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 563, in error
    return self._call_chain(*args)
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspaces/codespace_algorand/main.py", line 78, in <module>
    setup_and_transfer_asset(receiver_acct, i + 1)
  File "/workspaces/codespace_algorand/main.py", line 63, in setup_and_transfer_asset
    algorand.send.asset_transfer(
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algokit_utils/beta/algorand_client.py", line 206, in <lambda>
    self.new_group().add_asset_transfer(params).execute()
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algokit_utils/beta/composer.py", line 716, in execute
    return self.atc.execute(client=self.algod, wait_rounds=wait_rounds)
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/atomic_transaction_composer.py", line 862, in execute
    self.submit(client)
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/atomic_transaction_composer.py", line 725, in submit
    client.send_transactions(self.signed_txns)
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/v2client/algod.py", line 430, in send_transactions
    return self.send_raw_transaction(
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/v2client/algod.py", line 358, in send_raw_transaction
    resp = self.algod_request("POST", req, data=txn_bytes, **kwargs)
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/v2client/algod.py", line 111, in algod_request
    raise error.AlgodHTTPError(e, code)
algosdk.error.AlgodHTTPError: TransactionPool.Remember: txn dead: round 11 outside of 0--10

Info:

algokit, version 2.0.3 Executed on localnet

Expected Behavior:

The program should be able to create and send assets to three receiver accounts. The program executed fine if the amount of transactions were below 10 (two receivers), but failed after 10 transactions (three receivers).

Snippet of code:

# Function to setup and transfer asset to a receiver account
def setup_and_transfer_asset(receiver, n):
    # Fund the receiver account
    algorand.send.payment(
        PayParams(
            sender = dispenser.address,
            receiver = receiver.address,
            amount = 10_000_000,
        )
    )
    print(f"Receiver {n} account BEFORE: {algorand.account.get_information(receiver.address)}")

    # Opt-in to the asset
    algorand.send.asset_opt_in(
        AssetOptInParams(
            sender = receiver.address,
            asset_id=asset_id,
        )
    )

    # Transfer the asset
    algorand.send.asset_transfer(
        AssetTransferParams(
            sender = creator.address,
            receiver = receiver.address,
            asset_id = asset_id,
            amount = 111,
        )
    )

    print(f"Receiver {n} account AFTER: {algorand.account.get_information(receiver.address)}")

# Create and setup three receiver accounts
for i in range(3):
    receiver_acct = algorand.account.random()
    print(f"Receiver {i+1} address: {receiver_acct.address}")
    setup_and_transfer_asset(receiver_acct, i + 1)
Magken91 commented 3 months ago

Info

Magken91 commented 3 months ago

Summary:

Receiving algosdk.error.AlgodHTTPError: TransactionPool.Remember: txn dead: round 11 outside of 0--10 after making more than 10 transactions

Am I hitting the rate limits or encountering node-specific restrictions that might affect transaction processing?

The error:

Traceback (most recent call last):
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/v2client/algod.py", line 104, in algod_request
    resp = urlopen(req)
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 525, in open
    response = meth(req, response)
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 634, in http_response
    response = self.parent.error(
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 563, in error
    return self._call_chain(*args)
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/usr/local/python/3.10.13/lib/python3.10/urllib/request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspaces/codespace_algorand/main.py", line 78, in <module>
    setup_and_transfer_asset(receiver_acct, i + 1)
  File "/workspaces/codespace_algorand/main.py", line 63, in setup_and_transfer_asset
    algorand.send.asset_transfer(
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algokit_utils/beta/algorand_client.py", line 206, in <lambda>
    self.new_group().add_asset_transfer(params).execute()
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algokit_utils/beta/composer.py", line 716, in execute
    return self.atc.execute(client=self.algod, wait_rounds=wait_rounds)
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/atomic_transaction_composer.py", line 862, in execute
    self.submit(client)
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/atomic_transaction_composer.py", line 725, in submit
    client.send_transactions(self.signed_txns)
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/v2client/algod.py", line 430, in send_transactions
    return self.send_raw_transaction(
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/v2client/algod.py", line 358, in send_raw_transaction
    resp = self.algod_request("POST", req, data=txn_bytes, **kwargs)
  File "/usr/local/python/3.10.13/lib/python3.10/site-packages/algosdk/v2client/algod.py", line 111, in algod_request
    raise error.AlgodHTTPError(e, code)
algosdk.error.AlgodHTTPError: TransactionPool.Remember: txn dead: round 11 outside of 0--10

Info:

algokit, version 2.0.3 Executed on localnet

Expected Behavior:

The program should be able to create and send assets to three receiver accounts. The program executed fine if the amount of transactions were below 10 (two receivers), but failed after 10 transactions (three receivers).

Snippet of code:

# Function to setup and transfer asset to a receiver account
def setup_and_transfer_asset(receiver, n):
    # Fund the receiver account
    algorand.send.payment(
        PayParams(
            sender = dispenser.address,
            receiver = receiver.address,
            amount = 10_000_000,
        )
    )
    print(f"Receiver {n} account BEFORE: {algorand.account.get_information(receiver.address)}")

    # Opt-in to the asset
    algorand.send.asset_opt_in(
        AssetOptInParams(
            sender = receiver.address,
            asset_id=asset_id,
        )
    )

    # Transfer the asset
    algorand.send.asset_transfer(
        AssetTransferParams(
            sender = creator.address,
            receiver = receiver.address,
            asset_id = asset_id,
            amount = 111,
        )
    )

    print(f"Receiver {n} account AFTER: {algorand.account.get_information(receiver.address)}")

# Create and setup three receiver accounts
for i in range(3):
    receiver_acct = algorand.account.random()
    print(f"Receiver {i+1} address: {receiver_acct.address}")
    setup_and_transfer_asset(receiver_acct, i + 1)
Magken91 commented 3 months ago

Sorry dont know how to cipit

Magken91 commented 3 months ago

How do iopen it ir what do i do with it

Magken91 commented 3 months ago

So many thibgsvat the bottom