Troubleshooting
Common errors and step-by-step solutions. Find your problem, apply the fix, get back to building.
Transaction Failures
"INSUFFICIENT_PAYMENT" Error
What it means: Your payment is less than the required amount.
Why it happens: Price increased between viewing and purchasing. You sent exact amount without buffer.
How to fix:
Check current price in the market contract
Add 5% buffer to handle price increases
Approve the higher amount
Submit transaction again
Prevention: Always add a small buffer when buying NFTs in stepped markets.
"SOLD_OUT" Error
What it means: All NFTs in this batch or market are sold.
Why it happens: Someone else bought the last NFT before your transaction confirmed.
How to fix:
Check if next batch is available (stepped markets)
If completely sold out, buy on secondary market
Consider joining waitlist for next card set
Prevention: Act quickly on popular launches. Use higher gas prices for faster confirmation.
"INVALID_PRICE" Error
What it means: Amount sent doesn't match the exact price required.
Why it happens: Sent wrong ETH amount. Batch price changed. Fee calculation incorrect.
How to fix:
Read current batch price from contract
Calculate: Price × Quantity = Total
Send exactly that amount
Retry transaction
Example: Buying 3 NFTs at 0.1 ETH each requires exactly 0.3 ETH.
"TRANSFER_FAILED" Error
What it means: ETH transfer to treasury or liquidity contract failed.
Why it happens: Recipient contract cannot receive ETH. Gas limit too low. Reentrancy issue.
How to fix:
Increase gas limit by 50%
Check recipient contract is valid
Wait and retry after a few blocks
Contact project admin if persists
When to escalate: If error persists after 3 attempts with high gas.
"REFUND_FAILED" Error
What it means: Attempting to refund your ETH failed.
Why it happens: Your wallet cannot receive ETH. Contract has insufficient balance. Refund period ended.
How to fix:
Verify your wallet can receive ETH (some multisigs cannot)
Check if launch already occurred (refunds disabled after launch)
Use a standard wallet address (not contract)
Contact support with transaction hash
Critical: If you used a smart contract wallet, refunds may not work. Always use EOAs (externally owned accounts).
NFT Purchase Problems
Can't See My NFTs After Purchase
Possible causes: Wallet not synced. Wrong network. Transaction still pending.
Solutions:
Check transaction status on block explorer
Verify you're on correct network (Base, Optimism, etc.)
Refresh wallet NFT section
Import NFT contract manually if needed
Wait 2-3 minutes for indexing
Manual import: Add contract address + your token ID to wallet's NFT section.
Bought NFTs But No Rewards Available
Why this happens: Rewards haven't accumulated yet. Trading volume too low. Claim period not started.
Check these:
Has liquidity launched yet? (No launch = no trading = no fees)
Check trading volume on Uniswap
Verify your PatronPower balance
Confirm you own the NFT (not transferred)
Timeline: Rewards accumulate gradually. Check daily, claim weekly or monthly.
NFT Shows Zero Value on OpenSea
Normal situation: Value comes from utility, not floor price. Rewards > resale.
If concerned:
Verify rewards are accumulating (check PatronClaim)
Calculate lifetime value: Daily fees × 365 × Years
Remember: Holding earns, selling stops earnings
Example: 0.01 ETH daily rewards = 3.65 ETH yearly. Better than 0.1 ETH sale price.
Staking Issues
"INVALID_LOCK_DURATION" Error
What it means: Lock duration outside valid range.
Valid ranges:
Minimum: 7 days (604,800 seconds)
Maximum: 4 years (126,144,000 seconds)
Permanent: type(uint256).max
How to fix:
Convert your desired duration to seconds
Ensure it's ≥ 7 days and ≤ 4 years
For permanent, use the special constant
Resubmit with correct value
Conversion: Days × 86,400 = Seconds
"NOT_TOKEN_OWNER" Error
What it means: You don't own the NFT you're trying to stake.
Why it happens: Transferred NFT. Wrong wallet connected. Using token ID you don't own.
How to fix:
Verify you own the token (check on block explorer)
Connect correct wallet
Double-check token ID
If transferred, use new owner's wallet
Check ownership: Go to NFT contract, call ownerOf(tokenId).
"LOCK_NOT_EXPIRED" Error
What it means: Trying to unstake before lock period ends.
Why it happens: Lock still active. Calculated end time incorrectly. Using wrong timezone.
How to fix:
Check lock expiration: Current timestamp < End timestamp
Calculate: Lock Start + Duration = End
Wait until end timestamp passes
Or use OVL early exit (if available)
OVL option: Exit early with penalty instead of waiting.
Can't Unstake Even After Lock Expires
Possible causes: Wrong function called. Token ID incorrect. Contract paused.
Solutions:
Call
unstake(tokenId)notwithdraw()Verify token ID matches your NFT
Check if contract is paused (emergency only)
Ensure gas limit is sufficient (200,000+)
If paused: Wait for unpause or contact project admin.
Claim Failures
"ALREADY_CLAIMED" Error
What it means: You already claimed for this NFT.
Why it happens: Multiple claim attempts. Claimed in previous transaction. Using wrong token ID.
How to fix:
Check claim history on block explorer
Verify which token IDs are unclaimed
Only claim unclaimed tokens
Review past transactions for confirmation
Note: Each NFT can claim once per distribution period.
"NO_NFT_HOLDINGS" Error
What it means: Your wallet has zero NFTs in this collection.
Why it happens: Don't own any Patron Cards. Transferred all NFTs. Wrong wallet connected.
How to fix:
Verify you own at least one Patron Card
Connect wallet that owns NFTs
Check if you transferred cards to another address
Buy Patron Cards if you don't have any
Check balance: Call balanceOf(yourAddress) on Card contract.
"INSUFFICIENT_BALANCE" Error
What it means: Claim contract has insufficient tokens to distribute.
Why it happens: Distribution not funded yet. Claimed more than available. Calculation error.
How to fix:
Check contract token balance
Verify distribution was deposited
Wait for next distribution period
Contact project if balance should be higher
When to worry: If contract should have balance but shows zero.
"ZERO_AMOUNT" Error
What it means: Your claimable amount is zero.
Why it happens: No rewards accumulated. PatronPower too low. Trading volume insufficient.
How to fix:
Check your PatronPower: Should be > 0
Verify trading volume exists
Wait for more fees to accumulate
Increase your PatronPower (stake more, lock longer)
Minimum threshold: Some projects require minimum amount before claiming.
Configuration Issues
Wrong Network Connected
Symptoms: Contract not found. Transaction fails. Balance shows zero.
How to identify:
Check wallet shows correct network
Verify contract exists on current network
Look for "Network Mismatch" warnings
How to fix:
Open wallet network selector
Switch to correct network (Base, Optimism, etc.)
Refresh page
Reconnect wallet
Retry transaction
Common networks: Ethereum (1), Base (8453), Optimism (10), Arbitrum (42161)
Can't Approve Token Spending
What it means: ERC20 approval transaction failing.
Common causes: Insufficient gas. Already approved. Token contract paused.
Solutions:
Check current allowance: May already be approved
Revoke old approval first: Set to 0, then new amount
Use unlimited approval: type(uint256).max
Increase gas limit to 100,000
Check token is not paused
Security tip: Only approve amounts you plan to use immediately.
Transaction Pending Forever
What it means: Transaction stuck in mempool.
Why it happens: Gas price too low. Nonce conflict. Network congestion.
How to fix:
Check gas price vs. network average
Speed up: Resubmit with same nonce, higher gas
Cancel: Send 0 ETH to yourself with same nonce
Wait: Sometimes takes 30+ minutes during congestion
Prevention: Use recommended gas prices. Add 10% buffer during congestion.
Gas Estimation Problems
"Out of Gas" Error
What it means: Transaction ran out of gas during execution.
Why it happens: Underestimated complexity. Loops over large arrays. Reentrancy.
How to fix:
Increase gas limit by 50%
Break operation into smaller batches
Remove unlimited approvals and redo
Check contract for gas estimates
Typical limits:
Deploy: 5,000,000
Buy NFT: 300,000
Claim: 200,000
Stake: 250,000
Gas Price Too High
Not an error: Just expensive network conditions.
How to reduce costs:
Use L2s: Base, Optimism, Arbitrum (100x cheaper)
Wait for low congestion (nights, weekends)
Batch operations: Claim multiple at once
Set lower gas price, wait longer
Cost comparison:
Ethereum: $50-200 per transaction
Base: $0.50-2
Optimism: $0.30-1.50
Arbitrum: $0.20-1
Transaction Underpriced
What it means: Gas price below network minimum.
Why it happens: Used old gas price. Network congestion increased. EIP-1559 base fee rose.
How to fix:
Get current base fee from block explorer
Use wallet's recommended gas
Increase max fee to 2x base fee
Retry transaction
EIP-1559 networks: Set both maxFeePerGas and maxPriorityFeePerGas.
Slippage and Price Issues
"SLIPPAGE_TOO_HIGH" Error
What it means: Price moved too much between transaction submission and execution.
Why it happens: High volatility. Large trade size. Low liquidity. Front-running.
How to fix:
Increase slippage tolerance to 3-5%
Split large trades into smaller ones
Wait for lower volatility
Use limit orders if available
Warning: High slippage = worse price. Only increase if necessary.
Price Changed During Purchase
Normal behavior: Stepped markets increase price each batch.
What to expect:
Batch 1-100: 0.1 ETH
Batch 101-200: 0.15 ETH
Price jumps when batch fills
How to handle:
Check current batch and price
Send enough ETH for next price tier
Excess ETH refunded automatically
Monitor batch fill levels
Strategy: Buy early in batch for best price.
Smart Contract Specific Errors
"INVALID_ADDRESS" Error
What it means: Provided address is zero address or invalid.
Common in: Initialization. Token transfers. Delegation.
How to fix:
Verify address is not 0x0000...0000
Check address is checksummed correctly
Ensure address is for correct network
Copy-paste to avoid typos
Validation: Use Etherscan to verify address exists.
"ONLY_OPERATOR" Error
What it means: Function requires operator role. You don't have it.
Why it happens: Trying to call admin functions. Not added as operator. Wrong wallet.
How to fix:
Verify you have operator role
Ask project admin to grant role
Use wallet with operator permissions
Check if function is public (may not need role)
Check role: Call isOperator(yourAddress) on Project contract.
"ONLY_ADMIN" Error
What it means: Function requires admin role. Even operators can't call it.
Critical functions: Adding operators. Changing core settings. Emergency pause.
How to fix:
Must be project admin (usually founder)
No way to grant admin without existing admin
If lost admin access, contract may be locked
Use multisig for admin role (recommended)
Prevention: Set admin to multisig. Never use hot wallet.
"CONTRACT_PAUSED" Error
What it means: Contract is emergency paused.
Why it happens: Security incident. Upgrade in progress. Admin action.
How to fix:
Wait for unpause announcement
Check project Discord/Twitter for updates
Don't panic: Funds are safe
Contact admin if pause seems wrong
Timeline: Usually unpaused within hours. Days maximum for serious issues.
Common User Mistakes
Approving Wrong Token
Problem: Approved USDC but need to approve WETH.
How to fix:
Identify required token from error
Approve correct token
Check transaction requirements before signing
Using Wrong Wallet
Problem: Connected different wallet than one holding NFTs.
How to fix:
Disconnect current wallet
Connect wallet with NFTs/tokens
Verify balance before transactions
Insufficient ETH for Gas
Problem: Have tokens but no ETH for gas.
How to fix:
Send ETH to wallet (0.01-0.1 ETH sufficient)
Keep gas reserves on all networks
Use faucets for testnets
Sent to Wrong Address
Critical: Cannot reverse blockchain transactions.
If tokens sent wrong:
Contact recipient if known
No protocol-level recovery possible
Check if recipient is contract (may have recovery)
Prevention: Always verify address. Use address book. Test with small amount first.
Getting Help
Before Asking for Support
Collect this information:
Transaction hash
Wallet address
Error message (exact text)
Network being used
Steps to reproduce
Where to Get Help
Community Discord: Real-time help from community members
GitHub Issues: Bug reports and technical problems
Documentation: Most questions answered in docs
Twitter: Announcements and quick updates
When to Contact Admin
Contact for:
Contract paused unexpectedly
Funds stuck in contract
Suspected security issue
Operator access needed
Don't contact for:
How-to questions (use docs)
Price questions (check market)
General support (use Discord)
Emergency Procedures
Suspected Security Issue
Immediate actions:
Stop all transactions
Document the issue
Contact admin privately (DM, not public)
Don't share exploit publicly
Wait for response
Don't: Post exploit publicly. Continue transacting. Panic sell.
Lost Access to Wallet
NFT holdings:
Check seed phrase backups
Try hardware wallet recovery
Contact wallet provider support
Admin role:
If multisig: Use other signers
If single wallet: May be unrecoverable
Prevention: Always use multisig for admin
Contract Acting Weird
Investigation steps:
Check recent transactions
Review contract events
Compare to expected behavior
Ask in Discord
If confirmed bug:
Document clearly
Report to admin
Await emergency response
Prevention Best Practices
Before Every Transaction
Verify correct network
Check you have gas ETH
Review transaction details
Start with small test amount
Confirm addresses are correct
Security Checklist
Never share private keys
Use hardware wallet for large amounts
Verify contract addresses
Check transaction before signing
Keep backups of seed phrases
Gas Management
Keep ETH for gas on all networks
Check gas prices before transacting
Use L2s for frequent operations
Batch claims to save gas
Smart Defaults
Use recommended gas prices
Add 5% slippage buffer
Verify before every signature
Keep emergency contact list
Know project admin contacts
Still stuck? Join the Discord and ask with your transaction hash, wallet address, and error message. The community is here to help.
Last updated