技能 编程开发 Alchemy Web3错误诊断与修复指南

Alchemy Web3错误诊断与修复指南

v20260423
alchemy-common-errors
本指南旨在帮助开发者诊断和修复在使用Alchemy SDK及Web3 API时遇到的常见错误。内容涵盖了API认证失败、速率限制、参数错误、RPC调用失败以及NFT等特定API的使用问题,提供完整的错误码和解决方案。
获取技能
344 次下载
概览

Alchemy Common Errors

Overview

Troubleshooting guide for Alchemy SDK errors covering rate limits, RPC failures, invalid parameters, and network-specific issues.

Error Reference

Authentication & Rate Limits

HTTP CodeErrorRoot CauseFix
401UnauthorizedInvalid or missing API keyVerify key in Alchemy Dashboard
403ForbiddenAPI key disabled or app deletedCreate new app in Dashboard
429Too Many RequestsRate limit exceededImplement backoff; upgrade plan
429Compute Units exceededCU quota depletedCheck CU usage in Dashboard

Alchemy Rate Limits by Plan

PlanCompute Units/secThroughput
Free330 CU/s~25 requests/s
Growth660 CU/s~50 requests/s
ScaleCustomCustom

RPC & Query Errors

// Common RPC error handler
import { Alchemy, Network } from 'alchemy-sdk';

async function safeAlchemyCall<T>(
  operation: () => Promise<T>,
  context: string
): Promise<T | null> {
  try {
    return await operation();
  } catch (error: any) {
    const code = error.code || error.response?.status;

    switch (code) {
      case -32602: // Invalid params
        console.error(`[${context}] Invalid parameters: ${error.message}`);
        console.error('Common causes: wrong address format, invalid block number, missing 0x prefix');
        break;

      case -32600: // Invalid request
        console.error(`[${context}] Malformed JSON-RPC request`);
        break;

      case -32601: // Method not found
        console.error(`[${context}] RPC method not available on this network`);
        console.error('Some Enhanced APIs are Ethereum-only');
        break;

      case -32000: // Server error
        console.error(`[${context}] Node server error — usually transient, retry`);
        break;

      case 429:
        const retryAfter = error.response?.headers?.['retry-after'] || 1;
        console.error(`[${context}] Rate limited — retry after ${retryAfter}s`);
        break;

      default:
        console.error(`[${context}] Unknown error: ${code} — ${error.message}`);
    }
    return null;
  }
}

NFT API Errors

ErrorRoot CauseFix
Empty ownedNftsAddress has no NFTs on this chainCheck correct network
Missing image.cachedUrlIPFS/Arweave gateway timeoutUse image.originalUrl fallback
getNftsForContract emptyContract not indexedWait for indexing; try refreshContract
Spam NFTs in resultsNo spam filterAdd excludeFilters: ['SPAM'] option
getNftMetadataBatch failsBatch too largeLimit to 100 tokens per batch

Enhanced API Errors

ErrorRoot CauseFix
getAssetTransfers emptyWrong categoryInclude all: EXTERNAL, ERC20, ERC721, ERC1155
getTokenBalances timeoutToo many tokensPaginate or use specific contract addresses
getTokenMetadata null fieldsToken not verifiedHandle null name/symbol gracefully
WebSocket disconnectIdle timeout (5 min)Implement auto-reconnect logic

Network-Specific Issues

// Diagnostic function
async function diagnoseAlchemyIssue(alchemy: Alchemy): Promise<string[]> {
  const issues: string[] = [];

  try {
    const blockNumber = await alchemy.core.getBlockNumber();
    console.log(`Connected: block #${blockNumber}`);
  } catch (err: any) {
    if (err.message?.includes('apiKey')) issues.push('API key invalid or missing');
    else if (err.code === 'ECONNREFUSED') issues.push('Cannot reach Alchemy servers — check network');
    else issues.push(`Connection error: ${err.message}`);
  }

  return issues;
}

Quick Diagnostic

# Test Alchemy API directly
curl -s "https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":0}' | jq .

# Check CU usage (requires auth token)
curl -s "https://dashboard.alchemy.com/api/stats" \
  -H "Authorization: Bearer ${ALCHEMY_AUTH_TOKEN}" | jq .

Output

  • Error classified by type (auth, rate limit, RPC, network)
  • Root cause identified with specific fix
  • Diagnostic function for automated troubleshooting

Resources

Next Steps

For collecting debug bundles, see alchemy-debug-bundle.

信息
分类 编程开发
名称 alchemy-common-errors
版本 v20260423
大小 5.14KB
更新时间 2026-04-28
语言