Most tier 6–10 and edge-engine failures do not return HTTP 500. edge_payload(), risk_payload(), and every handler in tiers/routes.py catch their own exceptions and return 200 with an "error" field in the body instead. This is deliberate: a bug in one signal module should render as a broken panel, not take down the rest of the dashboard. Check the response body for an error key even on a 200.

Local dashboard API (ghostcopy/server.py)

Enterprise Wallet API (/api/enterprise/wallets/top)

Execution relay service (apps/api/execution/server.ts)

MCP server

Rate-limit and auth failures throw a typed AuthError with a descriptive message (e.g. “daily quota of 100 calls exceeded for tier free”) rather than a bare HTTP status, since MCP tools return through the Model Context Protocol, not raw HTTP, when run over stdio. See MCP Server for tier limits.
Scienter publishes impersonal market signals of general and regular circulation. Nothing here is investment, legal, or tax advice, or a recommendation to buy, sell, or hold any asset. Scienter is not a registered investment adviser or broker-dealer. Trading digital assets can result in the total loss of your funds — see Disclaimers for the full text.