● Ship · Fixes
Troubleshooting
symptoms and fixes.
Where to look first, and what to do when a screen stays empty, a verdict looks wrong or a file returns 404. Tip: paste the exact message into the search box.
01No AI visits appear
Where to look: Activity (what happened to each request), Settings → Tools & status, Bots & rules → Verification sources, the loopback test, and the X-CryptoMeter response header.
- Normal on a new or small site: AI bots visit irregularly. The screens say "Collecting since …".
- A page cache serves the bots (run the loopback test, see Page caches), or a CDN/firewall rule stops them before WordPress.
- CryptoMeter is paused (Settings → General).
- You tested while logged in.
02Everything shows "Unknown"
- Lists not fetched yet: press Refresh now. If a list shows an error, your host may block outgoing HTTPS; ask it to allow the URLs in section 19.
- Your site is behind a proxy/CDN and sees the proxy's (often private) IP: configure the real visitor IP.
- WP-Cron does not run (low traffic or
DISABLE_WP_CRON), so lists become older than 3 days. Set up a real cron job forwp-cron.php.
03A genuine bot shows "Spoofed"
- Your server sees a wrong IP (proxy): fix the visitor IP first.
- The vendor's list changed after the last refresh: press Refresh now.
- Your own SEO tool uses a search-engine user agent: switch off "Block spoofed bots" for it to be treated as a generic client, or give it its own user agent.
04A bot I blocked still reads my pages
- Page cache (most common).
- The bot is not recognised (browser-like user agent) or uses a user agent not in the list: add it under Custom AI user agents.
- A per-bot exception overrides the intent policy.
- It reads files outside WordPress (images, static files). CryptoMeter only sees requests WordPress handles; use the server rules.
05Referrals stay at 0
- Referral counting is off (Settings → General), or you tested while logged in.
- The assistant hid the referrer (common in apps). Test with
https://your-site.example/?utm_source=chatgpt.comin a private window. - A script blocker, strict Content Security Policy or JavaScript optimisation plugin removes inline scripts, or a security plugin blocks
/wp-json/cryptometer/v1/beacon.
06robots.txt does not show CryptoMeter's lines
- A physical
robots.txtfile exists in the web root (the Signals preview shows it). Remove it or edit it by hand. - Settings → Reading → "Discourage search engines" is ticked (site not public), or CryptoMeter is paused.
- An SEO plugin replaces the robots.txt output entirely.
07/llms.txt, /license.xml or /tdmrep.json return 404
- The feature is off.
- Plain permalinks: choose any other structure under Settings → Permalinks and save (this also refreshes rewrite rules). For llms.txt,
/?cryptometer_llms=1works as a workaround. - A physical file or a server rule for
.txt,.xmlor.well-knowntakes precedence.
08HTTP 429 for a bot
A per-bot rate limit (Bots & rules), or with Monetize the per-IP limit for unpaid requests or the failed-payment throttle. All send Retry-After: 60. Behind a proxy without the real IP, all visitors share one IP.
09The admin shows an error
- "The server did not answer with JSON…" or "Your session has expired.": reload the page and log in again; a security plugin or a PHP error may have interrupted the request.
- "The admin app is missing (assets/app/ folder)": re-install the plugin from the original ZIP.
- "The CryptoMeter dashboard needs WordPress 6.6 or newer": update WordPress.
- "Database tables: missing" or "Daily maintenance: not scheduled" in System status: deactivate and activate the plugin.
10E-mails do not arrive
Check the recipient and that your site can send mail (SMTP plugin). The weekly report and daily summary are skipped in periods without AI activity; the spike alert needs at least 50 requests in an hour.
11Monetize problems
| Code | HTTP | Meaning and fix |
|---|---|---|
invalid_exact_evm_insufficient_balance | 402 | The paying wallet lacks USDC on that network (normal for unfunded wallets). |
invalid_exact_evm_signature | 402 | Signature not valid for this payment; the agent must sign again with the values from the challenge. |
nonce_already_used | 402 | Replay protection: sign a new payment. |
too_many_failed_payments | 429 | More than 10 failed verifications from this IP in a minute. |
invalid_payment_requirements, …_recipient_mismatch, …_value_mismatch | 402 | Amount, network, token or recipient differ from the offer (for example the price changed). Request again. |
…_valid_before / …_valid_after | 402 | Expired or not yet valid; check the agent's clock. |
invalid_payload, invalid_x402_version | 400 | Malformed header, or v1 while v1 is not accepted. |
network_error: … | 502 | Facilitator unreachable from your server. |
settlement_pending | 402 | Still pending after one retry; the ledger row is Unconfirmed. |
cdp_credentials_missing, cdp_key_invalid_pem, cdp_key_invalid_ed25519, cdp_sodium_missing | - | Coinbase CDP key problems; re-enter the key (PEM line breaks as \n), check sodium in System status. |
facilitator_not_configured | - | "Custom facilitator URL" selected without a URL. |
- Bots set to Charge get 200 instead of 402: Monetize off, no valid wallet, post type not ticked under Content types, free by an access rule or price 0, or a page cache.
- Wallet will not save: exactly 0x + 40 hex characters, no ENS names.
- "This facilitator is testnet-only": x402.org cannot be used in Live mode.