Skip to main content

Troubleshooting

Use this page when your agent call fails or returns unexpected output.

Endpoint and transport issues

Session not found or Missing mcp-session-id header

Cause: Request sequence does not follow HTTP MCP session flow. Fix:
  • Ensure your client initializes a session on POST /mcp first.
  • Use an MCP client that supports streamable HTTP sessions.
  • Use https://api.rhaios.com/mcp (not legacy SSE endpoints).

yield_prepare errors

Payment required

Cause: x402 payment was not attached or not verified. Fix:
  • Send the x402 payment header for yield_prepare.
  • Retry the same request after payment verification.

No suitable vaults found

Cause: No active vault matched your filters (asset, chain, risk). Fix:
  • Use asset: "USDC" and chain: "base" first.
  • Remove strict filters (riskTolerance, aggressive strategy overrides).
  • Retry with a larger universe (different chain or strategy).

yield_execute errors

Transaction validation failed

Cause: Signed tx did not match policy (wrong type, wrong chain, wrong target). Fix:
  • Ensure tx is Type 2 or Type 4.
  • Ensure to is EntryPoint (0x0000000071727De22E5E9d8BAf0edAc6f37da032).
  • Ensure chain is Base (8453) or Ethereum Sepolia (11155111).

Transaction submission failed with aaCode

yield_execute surfaces common account-abstraction errors:
  • AA50: postOp reverted (often paymaster/postOp issue)
  • AA24: signature validation failure
  • AA21: account not funded / prefund issue
Fix:
  • Rebuild calldata via yield_prepare, then re-sign (for AA24).
  • Check gas sponsorship/funding path (for AA21/AA50).
  • Retry once if RPC/bundler transient failure is suspected.

RPC and network issues

Symptoms:
  • Timeout errors
  • fetch failed
  • Receipt not found
Fix:
  • Check BASE_RPC_URL / ETH_SEPOLIA_RPC_URL reachability.
  • Retry with backoff (2-3 attempts).
  • Verify upstream status for your RPC provider.

Data freshness issues

If strategy quality looks stale:
  • Run local readiness check:
make indexer-readiness
  • Verify latest snapshot and aggregate jobs ran.
  • Check health endpoint freshness fields before production cutover.