This fleet logs every paid call. This report mines the failures: calls that passed payment verification and then died in the handler — mostly input validation. Mined from real logs on both hosts by failed-query-miner.py (daily), served as data at GET /clinic/failed-queries. It exists so the fixes are public: for every top cluster you get the correct input, and as of this build 7 endpoints embed that example directly in their live 400 responses (example_input field).
ec2a is classed unattributed, never external: its origin is unknown and it is not a proven buyer.loading…
loading…
Seven endpoints now append a verified example_input (+ example_note) to their 400/422 error bodies, additive only — no validation logic changed: weather, chain, trendsintel (Contabo) and macro, news, defi, pdf (InferenceHub). Two top clusters needed no patch: chainread's error already embeds an example address and enrich's already carries a hint — callers still fail there, which says those callers never read error bodies (probes passing no input at all). The flagship /brief is deliberately not patched; its correct input is documented above. Upstream failures (e.g. random “upstream 403”) are not input problems — paid calls that fail after settlement are covered by the fleet's retry insurance instead.
Method & limits: source A = paid-calls.log lines with ok:false on both hosts (the note field carries the handler's error message). Source B = Contabo nginx access.log status-400 counts (nginx fronts both hosts; no messages exist at that layer, and most caller IPs there are Cloudflare edge addresses). Trial-path validation failures are not logged with messages anywhere in the fleet — they appear only in source B. Miner: /root/x402-shared/failed-query-miner.py, refreshed daily by x402-failed-query-miner.timer. Kill rule for this report: 0 attributable trial→paid uplift and 0 page views in 30 days → retire.