Sui.

Post

Share your knowledge.

article banner.
Owen.
Owen496
Jun 30, 2025
Article

Common Sui Blockchain Errors: Object Locking & Faucet Rate Limits

When developing or testing applications on the Sui blockchain, developers often run into two common issues:

  1. Object locking errors during transaction execution
  2. Rate-limited faucet requests when trying to obtain test tokens

This article explains both problems in detail and provides actionable solutions to help you avoid frustration during development.


1. Error: Objects Reserved for Another Transaction

🔍 What It Means

You may encounter an error like this:

JsonRpcError: Failed to sign transaction by a quorum of validators because one or more of its objects is reserved for another transaction.

This means one or more objects (e.g., gas coins or shared objects) involved in your transaction are currently locked by a previously submitted transaction — even if it hasn’t completed yet.

Sui uses optimistic concurrency control, which locks objects until a transaction is finalized or expires (~30–60 seconds). If multiple transactions attempt to use the same object before finalization, they will fail with this error.


How to Check If an Object Is Available

Use the sui_getObject RPC method to inspect the object status:

curl --location --request POST 'https://fullnode.testnet.sui.io:443' \
--header 'Content-Type: application/json' \
--data-raw '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getObject",
  "params": ["<object_id>"]
}'

If the response contains "status": "Locked" or "owner": "locked", wait before using the object again.


Best Practices to Avoid Object Locking Issues

  1. Wait for Finalization Before Submitting New Transactions

    Use waitForTransaction from the SDK:

    import { JsonRpcProvider } from '@mysten/sui.js';
    
    const provider = new JsonRpcProvider('https://fullnode.testnet.sui.io:443');
    await provider.waitForTransaction('<tx_digest>');
    
  2. Use Multiple Gas Coins

    To avoid contention, split your gas coin:

    sui client split-coin --coin-id <gas_coin_id> --amounts <amt1> <amt2>
    

    Then use a different gas coin for each transaction.

  3. Retry with Exponential Backoff

    When encountering lock errors, retry after increasing delays (e.g., 1s, 2s, 4s).

  4. Monitor via Explorer

    Use Sui Explorer to track the status of the locking transaction by digest.


2. Error: 429 Too Many Requests – Faucet Rate Limiting

What It Means

When requesting test tokens from the Sui faucet, you may see:

API Error: 429 POST /v2/gas - “429 Too Many Requests”

This indicates that you’ve exceeded the rate limit — usually due to too many requests from the same IP address or account within a 24-hour window.


Solutions

Try Alternative Faucets

The official faucet (faucet.testnet.sui.io) has strict limits. You can try alternative services:

These faucets often have more lenient policies or separate rate limits.

Reuse Test Accounts

Instead of creating new accounts every time, reuse existing ones to reduce faucet requests.

Run a Local Testnet

For heavy development/testing, consider running your own local Sui network:

sui start --local-rpc-address

This gives you full control over gas and avoids external dependencies.

  • Sui
  • Transaction Processing
5
Share
Comments
.

Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.

351Posts499Answers
Sui.X.Peera.

Earn Your Share of 1000 Sui

Gain Reputation Points & Get Rewards for Helping the Sui Community Grow.

Reward CampaignJuly