{"record":{"id":"12e45a1c8c380b90","repo":"headroomlabs-ai/headroom","slug":"no-telemetry-found-for-signature-signature-hash","errorCode":null,"errorMessage":"No telemetry found for signature: {signature_hash}","messagePattern":"No telemetry found for signature: (.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":404,"severity":"info","filePath":"headroom/proxy/server.py","lineNumber":4803,"sourceCode":"        telemetry = get_telemetry_collector()\n        all_stats = telemetry.get_all_tool_stats()\n        return {\n            \"tool_count\": len(all_stats),\n            \"tools\": {sig_hash: stats.to_dict() for sig_hash, stats in all_stats.items()},\n        }\n\n    @app.get(\"/v1/telemetry/tools/{signature_hash}\", dependencies=[Depends(_require_loopback)])\n    async def telemetry_tool_detail(signature_hash: str):\n        \"\"\"Get detailed telemetry for a specific tool signature.\n\n        Includes learned recommendations if enough data has been collected.\n        \"\"\"\n        telemetry = get_telemetry_collector()\n        stats = telemetry.get_tool_stats(signature_hash)\n        recommendations = telemetry.get_recommendations(signature_hash)\n\n        if stats is None:\n            raise HTTPException(\n                status_code=404, detail=f\"No telemetry found for signature: {signature_hash}\"\n            )\n\n        return {\n            \"signature_hash\": signature_hash,\n            \"stats\": stats.to_dict(),\n            \"recommendations\": recommendations,\n        }\n\n    # TOIN (Tool Output Intelligence Network) endpoints\n    @app.get(\"/v1/toin/stats\", dependencies=[Depends(_require_loopback)])\n    async def toin_stats():\n        \"\"\"Get overall TOIN statistics.\n\n        Returns aggregated statistics from the Tool Output Intelligence Network,\n        which learns optimal compression strategies across all tool types.\n\n        Response includes:","sourceCodeStart":4785,"sourceCodeEnd":4821,"githubUrl":"https://github.com/headroomlabs-ai/headroom/blob/322425c43bffde1ed0b64fecf3cf5951565dd82b/headroom/proxy/server.py#L4785-L4821","documentation":"GET /v1/telemetry/tools/{signature_hash} returns HTTP 404 when the telemetry collector has no stats for the given tool signature. The signature hash must come from tool telemetry listing endpoints; an arbitrary or stale hash has no data.","triggerScenarios":"Requesting a hash not present in /v1/telemetry output, a hash from a different process/run whose telemetry DB is not loaded, or a typo/truncation of the hash.","commonSituations":"Inspecting telemetry after the store reset; mixing hashes across projects/environments; dashboards caching old hashes.","solutions":["List telemetry first and copy the signature hash exactly.","Generate tool traffic so telemetry accumulates before querying detail.","Confirm you query the same proxy instance/store that collected the data."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"telemetry = (await client.get(\"/v1/telemetry/tools\")).json()\nknown = {t[\"signature_hash\"] for t in telemetry.get(\"tools\", [])}\nif sig not in known:\n    skip_detail_query(sig)","typeGuard":null,"tryCatchPattern":"resp = await client.get(f\"/v1/telemetry/tools/{sig}\")\nif resp.status_code == 404:\n    handle_no_telemetry(sig)  # refresh listing, don't retry blindly","preventionTips":["Always resolve hashes from the listing endpoint.","Query the same instance/store that collected telemetry."],"tags":["http","telemetry","not-found"],"backgroundTag":null,"analyzedSha":"322425c43bffde1ed0b64fecf3cf5951565dd82b","analyzedAt":"2026-08-15T01:03:05.481Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}