Prerequisites & Setup Verification

Before debugging, ensure your Mini App has the foundational requirements in place.

Required Files and Structure

Your Mini App must have these files in the correct locations:
your-domain.com/
├── .well-known/
│   └── farcaster.json          # Required manifest file
├── your-app/
│   ├── index.html              # Your app entry point
│   └── ...                     # Your app files

Environment Setup Checklist

  • Domain is accessible via HTTPS
  • Manifest file exists at /.well-known/farcaster.json
  • All image URLs are publicly accessible

Basic Validation Steps

  1. Test manifest accessibility: Visit https://yourdomain.com/.well-known/farcaster.json
  2. Validate JSON syntax: Use JSONLint to check your manifest
  3. Test app loading: Ensure your app loads without console errors

Quick Diagnostic Workflow

Is your app not appearing in search results?Go to App Discovery & Indexing Issues Is your app not rendering as an embed when shared?Go to Embed Rendering Issues Are you having wallet connection problems?Go to Wallet Connection Problems Are you looking for testing tools ?Go to Mobile Testing & Debugging Are changes not appearing after updates?Go to Manifest Configuration Problems

Detailed Problem Solutions

1. App Discovery & Indexing Issues

Problem: Your Mini App doesn’t appear in search results or app catalogs. Root Cause: Missing or incomplete manifest configuration. Solution: Ensure your manifest at /.well-known/farcaster.json includes all required fields:
{
  "accountAssociation": {
    "header": "eyJmaWQiOjkxNTIsInR5cGUiOiJjdXN0b2R5Iiwia2V5IjoiMHgwMmVmNzkwRGQ3OTkzQTM1ZkQ4NDdDMDUzRURkQUU5NDBEMDU1NTk2In0",
    "payload": "eyJkb21haW4iOiJyZXdhcmRzLndhcnBjYXN0LmNvbSJ9",
    "signature": "MHgxMGQwZGU4ZGYwZDUwZTdmMGIxN2YxMTU2NDI1MjRmZTY0MTUyZGU4ZGU1MWU0MThiYjU4ZjVmZmQxYjRjNDBiNGVlZTRhNDcwNmVmNjhlMzQ0ZGQ5MDBkYmQyMmNlMmVlZGY5ZGQ0N2JlNWRmNzMwYzUxNjE4OWVjZDJjY2Y0MDFj"
  },
  "frame": {
    "version": "1",
    "name": "Example Mini App",
    "iconUrl": "https://example.com/app.png",
    "splashImageUrl": "https://example.com/logo.png",
    "splashBackgroundColor": "#000000",
    "homeUrl": "https://example.com",
    "webhookUrl": "https://example.com/api/webhook",
    "subtitle": "Example Mini App subtitle",
    "description": "Example Mini App subtitle",
    "screenshotUrls": [
      "https://example.com/screenshot1.png",
      "https://example.com/screenshot2.png",
      "https://example.com/screenshot3.png"
    ],
    "primaryCategory": "social",
    "tags": [
      "example",
      "mini app",
      "coinbase wallet"
    ],
    "heroImageUrl": "https://example.com/og.png",
    "tagline": "Example Mini App tagline",
    "ogTitle": "Example Mini App",
    "ogDescription": "Example Mini App description",
    "ogImageUrl": "https://example.com/og.png"
  }
}
In the Category section only the top 100 Mini Apps are shared. This is determined by activity such as user sharing.
Critical Requirements:
  • primaryCategory is required for searchability and category pages
  • accountAssociation is required for verification
Reference: Complete manifest guide

App Indexing Requirements

Problem: Your app has a manifest but still doesn’t appear in catalogs. Solution: Your Mini App must be shared in a cast to be indexed. Steps to Index Your App:
  1. Complete your manifest setup
  2. Share your Mini App URL in a cast
  3. Indexing can take up to 10 minutes
  4. Verify appearance in app catalogs

Caching Issues - Changes Not Appearing

Problem: Updates to your manifest or app aren’t showing up. Why This Happens: Farcaster clients cache manifest data for up to 24 hours for performance. Solutions:
  1. Force Refresh: Share your Mini App in a new cast to trigger cache refresh. This can take up to 10 minutes

2. Manifest Configuration Problems

Image Display Issues

Problem: App icons or images not displaying correctly. Debug Steps:
  1. Test image accessibility in incognito browser
  2. Verify image format (PNG, JPG, WebP supported)
  3. Check image dimensions (icons should be 200x200px minimum)
  4. Ensure HTTPS URLs only
Manifest Embed Example

3. Embed Rendering Issues

Mini App Not Showing as Embed

Problem: Your Mini App URL doesn’t render as a rich embed when shared. Root Cause: The embed configuration is not correct. Solution: Make sure the metadata in the head tag has the correct format in order to render correctly. In order for it to work properly for all clients please ensure you’re using the name="fc:frame" meta tag.
<meta name="fc:frame" content="...">
Debug Steps:
  1. Test your URL in the Mini App Embed Tool
  2. Check meta tag is in <head> section
Success Verification: Your embed should show an image with a launch button when the URL is shared.

4. Wallet Connection Problems

Getting Connected Wallet

Problem: Unable to access user’s wallet or connection status. Minikit uses the Onchainkit wallet connect component that handles this behaviour of box for you without any additional set up. Complete Setup:
// 1. Install dependencies
// npm install @coinbase/onchainkit

// 2. Set up your app with MiniKitProvider
import { MiniKitProvider } from '@coinbase/onchainkit/minikit';
import { base } from 'wagmi/chains';

function App() {
  return (
    <MiniKitProvider
      apiKey="your-onchainkit-api-key"
      chain={base}
    >
      <YourAppContent />
    </MiniKitProvider>
  );
}

// 3. Use wallet component
import { Wallet } from '@coinbase/onchainkit/wallet';

function YourAppContent() {
  return (
    <div>
      <Wallet />
      {/* Your app content */}
    </div>
  );
}
import { useAccount } from 'wagmi';

function WalletInfo() {
  const { address, isConnected } = useAccount();
  
  if (!isConnected) {
    return <div>Please connect your wallet</div>;
  }
  
  return (
    <div>
      <div>Status: Connected</div>
      <div>Address: {address}</div>
    </div>
  );
}
MiniKit includes wagmi providers by default - don’t add additional wagmi configuration.
Error Handling:
import { useAccount, useConnect } from 'wagmi';

function WalletConnection() {
  const { address, isConnected } = useAccount();
  const { connect, connectors, error, isLoading } = useConnect();

  if (error) {
    return <div>Connection error: {error.message}</div>;
  }

  if (isLoading) {
    return <div>Connecting...</div>;
  }

  if (!isConnected) {
    return (
      <button onClick={() => connect({ connector: connectors[0] })}>
        Connect Wallet
      </button>
    );
  }

  return <div>Connected: {address}</div>;
}

5. Mobile Testing & Debugging

Using Eruda for Mobile Debug

Problem: Difficulty debugging Mini Apps on mobile devices. Setup:
<!-- Add to your HTML head for debugging only -->
<script src="https://cdn.jsdelivr.net/npm/eruda"></script>
<script>
  // Only enable in development
  if (window.location.hostname === 'localhost' || window.location.hostname.includes('ngrok')) {
    eruda.init();
  }
</script>
If you are testing specific enviornment behaviour - you can use clientFid :309857
How to Use:
  1. Add the script to your app
  2. Open your Mini App on mobile (cast the app in a DM to yourself)
  3. Look for the Eruda debugging panel icon (usually bottom-right)
  4. Access console, network, elements, and other debugging tools
Mobile Testing Workflow:
  1. Local Testing: Use ngrok or similar to expose localhost
  2. Cast in DM: Share your app URL in a DM to yourself
  3. Test Different Clients: Test in Warpcast mobile and other Farcaster clients
  4. Check Different Devices: Test on both iOS and Android if possible
Remove Eruda before production deployment.

Advanced Troubleshooting

AI-Assisted Debugging

Using Coinbase Wallet Compatibility Validator: The Coinbase Wallet team provides an AI-powered validation tool to check Mini App compatibility. How to Use:
  1. Use the validator prompt: CBW MiniApp Validator
  2. In your preferred AI code editor (Cursor, etc.):
    • Add the validator file to your project context
    • Ask the AI: “Please validate my Mini App code using the CBW validator guidelines”
  3. The AI will return a report of any unsupported actions or compatibility issues
What it Checks:
  • Unsupported SDK methods
  • Coinbase Wallet specific limitations

Success Verification

Testing Checklist

Before deploying your Mini App, verify these items work correctly: Basic Functionality:
  • App loads without console errors
  • All images display correctly
  • Wallet connection works
  • Core app functionality works as expected
Discovery & Sharing:
  • Manifest file is accessible at /.well-known/farcaster.json
  • App appears in embed when URL is shared
  • App appears in search results (after casting)
  • All required manifest fields are present

Getting Additional Help

If you’re still experiencing issues after following this guide: