-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Description
Bug Description
COMPOSIO_SEARCH_TOOLS returns tool recommendations that don't exist in the action registry, causing execution failures that appear as connection errors.
Environment
- API Version: v2
- Toolkit: Attio
- Connected Account Status: ACTIVE
Reproduction Steps
1. Execute COMPOSIO_SEARCH_TOOLS
POST /api/v2/actions/COMPOSIO_SEARCH_TOOLS/execute
{
"connectedAccountId": "<attio_connection_id>",
"input": {
"queries": [{
"use_case": "query records from attio with filters",
"known_fields": "object:people"
}]
}
}2. Response includes non-existent tools
{
"primary_tool_slugs": ["ATTIO_FIND_RECORD", "ATTIO_QUERY_RECORDS"],
"related_tool_slugs": ["ATTIO_SEARCH_RECORDS", "ATTIO_LIST_ATTRIBUTES", "ATTIO_UPDATE_RECORD"]
}The response even includes "known pitfalls" for these tools:
"[ATTIO_QUERY_RECORDS] Strict equality filters can miss near-matches"
3. Verify tools don't exist
# All return 404:
GET /api/v2/actions/ATTIO_QUERY_RECORDS
GET /api/v2/actions/ATTIO_SEARCH_RECORDS
GET /api/v2/actions/ATTIO_LIST_ATTRIBUTESResponse:
{"message":"Tool ATTIO_QUERY_RECORDS not found","code":2401,"status":404}4. Actual Attio tools that exist (11 total)
✅ ATTIO_CREATE_NOTE
✅ ATTIO_CREATE_RECORD
✅ ATTIO_DELETE_NOTE
✅ ATTIO_DELETE_RECORD
✅ ATTIO_FIND_RECORD
✅ ATTIO_GET_OBJECT
✅ ATTIO_LIST_LISTS
✅ ATTIO_LIST_NOTES
✅ ATTIO_LIST_OBJECTS
✅ ATTIO_LIST_RECORDS
✅ ATTIO_UPDATE_RECORD
Expected Behavior
COMPOSIO_SEARCH_TOOLS should only return tools that actually exist in the action registry.
Actual Behavior
The tool returns AI-generated recommendations for tools that sound plausible but don't exist:
ATTIO_QUERY_RECORDS- 404ATTIO_SEARCH_RECORDS- 404ATTIO_LIST_ATTRIBUTES- 404
When an LLM agent tries to execute these recommended tools, they fail with 404 errors that get masked as ECONNRESET/503 "connection interrupted" errors, making debugging extremely difficult.
Impact
- User Experience: Customers waste significant time debugging "connection issues" that are actually 404s
- Trust: Customers lose confidence when AI recommends tools that don't work
- Workarounds: Requires manually discovering that
ATTIO_FIND_RECORDis the only working query tool
Suggested Fix
- Validate tool recommendations against the actual action registry before returning
- Or add a parameter to
COMPOSIO_SEARCH_TOOLSlikeonly_existing_tools: true - Don't mask 404 errors as connection errors - surface the actual "tool not found" message
Additional Context
The Attio native API does have a query endpoint (POST /v2/objects/{object}/records/query) that supports compound filters. It appears COMPOSIO_SEARCH_TOOLS is hallucinating tool names based on what the underlying API might support, rather than checking what's actually registered in Composio's toolkit.