Troubleshooting
Quick solutions to common issues with the Axol API.
Authentication Issues
Error: "Invalid API key"
Problem: Your API key is not recognized.
Solutions:
- Verify the key is correct (check for extra spaces)
- Ensure key hasn't been revoked in dashboard
- Check you're using the right environment (production vs test)
Test your key:
curl https://api.axol.io/api/v1/health \
-H "X-API-Key: YOUR_KEY"
Error: "Insufficient permissions"
Problem: API key lacks required scope.
Solutions:
- Check key scopes in dashboard
- Create new key with required permissions
- Use different key for admin operations
Rate Limiting
Error: 429 Too Many Requests
Problem: Exceeded throughput limit (CUPs).
Solutions:
- Implement exponential backoff:
import time
def with_retry(func, max_retries=3):
for attempt in range(max_retries):
try:
return func()
except RateLimitError as e:
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt)
- Reduce request rate
- Upgrade to higher tier for more CUPs
Error: 402 CU Pool Exhausted
Problem: Used all monthly CUs.
Solutions:
- Wait until billing cycle resets (check
X-RateLimit-CU-Resetheader) - Enable overage billing in dashboard
- Upgrade to higher tier
- Optimize usage (see Performance Issues section below)
Connection Issues
Timeouts
Problem: Requests timing out.
Solutions:
- Check status.axol.io for incidents
- Increase client timeout (default is often too low)
- Use retry logic with exponential backoff
- For trace methods, expect longer response times (up to 30s)
# Increase timeout for trace methods
client = AxolClient(api_key="KEY", timeout=60)
WebSocket Disconnections
Problem: WebSocket connection drops.
Solutions:
- Implement auto-reconnect logic
- Send periodic heartbeats (ping/pong)
- Handle reconnection gracefully:
ws = AxolWebSocket(
api_key="KEY",
auto_reconnect=True,
max_reconnect_attempts=5
)
Data Issues
Stale Data
Problem: Receiving outdated blockchain data.
Solutions:
- Use
latestinstead of specific block numbers when possible - Check block timestamp in response
- Verify you're not hitting cached data (most queries are real-time)
Missing Historical Data
Problem: Archive data not available.
Solutions:
- Check tier's data retention period:
- Free/Starter: 30 days
- Base: 90 days
- Growth: 180 days
- Scale+: Full history
- Upgrade tier for longer history
- For beta chains, expect limited archive data
Incorrect Chain Data
Problem: Getting data from wrong chain.
Solutions:
- Verify chain identifier is correct (see Supported Chains)
- Check chain ID in response matches expected
- For multi-chain queries, verify request format
Performance Issues
Slow Responses
Problem: API calls taking too long.
Solutions:
- Trace methods are slow by design (1-30 seconds)
- Reduce block range for
eth_getLogsqueries - Use batch endpoints when making multiple calls
- Cache responses when data is static (past blocks)
- Check your network latency to our servers
High CU Usage
Problem: Consuming CUs faster than expected.
Solutions:
- Review method distribution in dashboard
- Avoid trace methods when not necessary
- Use narrow block ranges for log queries
- Cache results for static data
- See Compute Units for method cost details
SDK Issues
Import Errors (Python)
Problem: Can't import axol module.
Solutions:
# Reinstall SDK
pip uninstall axol-api-client
pip install axol-api-client
# Verify installation
python -c "import axol; print(axol.__version__)"
Type Errors (TypeScript)
Problem: TypeScript compilation errors.
Solutions:
# Update SDK
npm update @axol/api-client
# Ensure proper types
npm install --save-dev @types/node
Getting Help
Before Contacting Support
- Check status page: status.axol.io
- Review logs: Look for error messages in responses
- Test with curl: Isolate if issue is SDK-specific
- Check tier limits: Verify you're within your plan's limits
Contact Support
- Email: hello@axol.io
- Discord: discord.gg/d8H8QHhK
- Dashboard: Submit ticket at app.axol.io/support
Include in support requests:
- API key (last 8 characters only)
- Request ID from error response
- Timestamp of issue
- Example request that reproduces the problem
- Response received (including headers)
Common Questions
Q: Why is my free tier exhausted so quickly? A: Check your method distribution. A few trace method calls can consume as much as millions of standard calls. See CU costs.
Q: Can I get a refund for unused CUs? A: CU pools reset monthly and don't roll over. Consider downgrading tier if consistently under-utilizing.
Q: How do I migrate from another provider? A: See chain identifier mapping in Supported Chains. Most RPC methods are standard across providers.
Q: Do you support testnets? A: Currently mainnet only. Contact hello@axol.io to express interest in testnet support.
See also:
- Compute Units - Understanding CU costs
- Rate Limits - Understanding limits
- Pricing - Tier comparison and optimization