headroomlabs-ai/headroom · info · HTTPException
No telemetry found for signature: {signature_hash}
Error message
No telemetry found for signature: {signature_hash} What it means
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.
Source
Thrown at headroom/proxy/server.py:4803
telemetry = get_telemetry_collector()
all_stats = telemetry.get_all_tool_stats()
return {
"tool_count": len(all_stats),
"tools": {sig_hash: stats.to_dict() for sig_hash, stats in all_stats.items()},
}
@app.get("/v1/telemetry/tools/{signature_hash}", dependencies=[Depends(_require_loopback)])
async def telemetry_tool_detail(signature_hash: str):
"""Get detailed telemetry for a specific tool signature.
Includes learned recommendations if enough data has been collected.
"""
telemetry = get_telemetry_collector()
stats = telemetry.get_tool_stats(signature_hash)
recommendations = telemetry.get_recommendations(signature_hash)
if stats is None:
raise HTTPException(
status_code=404, detail=f"No telemetry found for signature: {signature_hash}"
)
return {
"signature_hash": signature_hash,
"stats": stats.to_dict(),
"recommendations": recommendations,
}
# TOIN (Tool Output Intelligence Network) endpoints
@app.get("/v1/toin/stats", dependencies=[Depends(_require_loopback)])
async def toin_stats():
"""Get overall TOIN statistics.
Returns aggregated statistics from the Tool Output Intelligence Network,
which learns optimal compression strategies across all tool types.
Response includes:View on GitHub (pinned to 322425c43b)
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.
Defensive patterns
Strategy: validation
Validate before calling
telemetry = (await client.get("/v1/telemetry/tools")).json()
known = {t["signature_hash"] for t in telemetry.get("tools", [])}
if sig not in known:
skip_detail_query(sig) Try / catch
resp = await client.get(f"/v1/telemetry/tools/{sig}")
if resp.status_code == 404:
handle_no_telemetry(sig) # refresh listing, don't retry blindly Prevention
- Always resolve hashes from the listing endpoint.
- Query the same instance/store that collected telemetry.
When it happens
Trigger: 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.
Common situations: Inspecting telemetry after the store reset; mixing hashes across projects/environments; dashboards caching old hashes.
Related errors
- No TOIN pattern found with hash starting with: {hash_prefix}
- upstream request failed: {0}
- invalid upstream URL: {0}
- metrics response build error: {e}
- Copilot token exchange failed with HTTP {exc.code}: {body}
AI-assisted analysis of headroomlabs-ai/headroom@322425c43b (2026-08-15).
Data as JSON: /api/errors/12e45a1c8c380b90.
Report an issue: GitHub.