Claude-code-plugins-plus-skills quicknode-common-errors

install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/quicknode-pack/skills/quicknode-common-errors" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-quicknode-common-errors && rm -rf "$T"
manifest: plugins/saas-packs/quicknode-pack/skills/quicknode-common-errors/SKILL.md
source content

QuickNode Common Errors

Overview

Quick reference for the top blockchain RPC errors when using QuickNode endpoints with ethers.js or viem.

Prerequisites

  • QuickNode endpoint configured
  • ethers.js or viem installed

Instructions

Error 1: Nonce Too Low

Error: nonce has already been used (error={"code":-32000,"message":"nonce too low"})

Fix:

// Get the correct nonce before sending
const nonce = await provider.getTransactionCount(wallet.address, 'pending');
const tx = await wallet.sendTransaction({ ...txData, nonce });

Error 2: Insufficient Funds

Error: insufficient funds for intrinsic transaction cost

Fix:

const balance = await provider.getBalance(wallet.address);
const gasEstimate = await provider.estimateGas(txData);
const feeData = await provider.getFeeData();
const totalCost = gasEstimate * feeData.gasPrice! + txData.value;
if (balance < totalCost) {
  console.error(`Need ${ethers.formatEther(totalCost)} ETH, have ${ethers.formatEther(balance)}`);
}

Error 3: Gas Estimation Failed (Call Revert)

Error: execution reverted (reason="ERC20: transfer amount exceeds balance")

Fix: The contract function would revert. Check contract requirements:

try {
  const gas = await contract.transfer.estimateGas(to, amount);
} catch (err) {
  console.error('Revert reason:', err.reason);
  // Check: sufficient token balance, approvals, contract state
}

Error 4: Rate Limited (429)

Error: 429 Too Many Requests

Fix: Implement exponential backoff or upgrade plan:

async function retryRpc<T>(fn: () => Promise<T>, retries = 3): Promise<T> {
  for (let i = 0; i < retries; i++) {
    try { return await fn(); }
    catch (err: any) {
      if (err.code === 'SERVER_ERROR' && i < retries - 1) {
        await new Promise(r => setTimeout(r, 1000 * Math.pow(2, i)));
        continue;
      }
      throw err;
    }
  }
  throw new Error('Max retries');
}

Error 5: Method Not Found

Error: Method not found — qn_getTokenMetadataByContractAddress

Fix: This method requires an add-on. Enable it in QuickNode Dashboard > Endpoints > Add-ons.

Error 6: WebSocket Connection Dropped

Error: WebSocket connection closed unexpectedly

Fix:

const wsProvider = new ethers.WebSocketProvider(process.env.QUICKNODE_WSS);
wsProvider.websocket.on('close', () => {
  console.log('WebSocket closed, reconnecting...');
  // Reconnect logic
});

Output

  • Error identified from RPC response
  • Targeted fix applied
  • Transaction successfully sent or contract call succeeded

Error Handling

RPC CodeMeaningRetryable
-32000Nonce/gas issueFix and retry
-32602Invalid paramsNo — fix request
-32603Internal errorYes — retry
429Rate limitedYes — backoff

Resources

Next Steps

For debugging, see

quicknode-debug-bundle
.