docs/content/changelog/01-07-26.mdx
Tool execution errors now return a standardized response format across all failure types. Previously, the data field was empty on errors—now it always includes status_code and message, matching the structure of successful responses.
All error responses from tool execution now include:
data.status_code: HTTP status code (or null for non-HTTP errors)data.message: Detailed error messageerror: Same detailed message at the top levelPrevious error response:
{
"data": {},
"successfull": false,
"error": "404 Client Error: Not Found for url: ...",
}
New error response:
{
"data": {
"http_error": "404 Client Error: Not Found for url: ...",
"status_code": 404,
"message": "Resource not found: The requested item does not exist"
},
"successfull": false,
"error": "Resource not found: The requested item does not exist",
}
data.message without special-casing empty data objectsTool schemas now use standard JSON Schema anyOf for union types, providing accurate type information for LLMs and code generators.
Two changes affect how types appear in request/response schemas:
| Change | Scope | Description |
|---|---|---|
| Nullable fields | All toolkits | Fields that accept null now use anyOf: [{type}, {type: "null"}] instead of type + nullable: true |
| Multi-type fields | 157 toolkits | Fields accepting multiple value types (e.g., string | number) preserve the full anyOf array instead of flattening to the first type |
CRM & Sales: active_campaign, apollo, attio, autobound, capsule_crm, firmao, forcemanager, gong, hubspot, instantly, intercom, kommo, leadfeeder, lever, magnetic, pipedrive, pipeline_crm, salesforce, salesforce_service_cloud, zoominfo
Marketing & Email: active_trail, beamer, delighted, dripcel, enginemailer, mailerlite, moosend, mopinion, sendspark, toneden
Communication & Collaboration: chmeetings, discord, helpdesk, helpwise, missive, slack, textit
Productivity & Project Management: basecamp, clicksend, clientary, dart, fibery, monday, notion, onedesk, productboard, rocketlane, todoist
Developer Tools & APIs: algolia, anonyflow, api_ninjas, api_sports, apify, appdrag, backendless, browserless, bubble, cloudconvert, cloudinary, cloudlayer, convertapi, databricks, datadog, datarobot, deepseek, deployhq, digital_ocean, docmosis, docugenerate, encodian, gitea, gitlab, globalping, groqcloud, hookdeck, hyperbrowser, imgbb, imgix, kibana, neutrino, npm, openai, openrouter, parsera, parseur, phantombuster, pinecone, prismic, procfu, replicate, scrape_do, serpapi, shotstack, snowflake, supabase, tavily, v0, vercel, writer, zenrows
E-commerce & Payments: brex, btcpay_server, coupa, flutterwave, gift_up, lemon_squeezy, quaderno, ramp, shopify, stripe, zoho_invoice
HR & Recruiting: ashby, bamboohr, recruitee
Data & Analytics: amplitude, census_bureau, college_football_data, currencyscoop, diffbot, ip2location, mixpanel, nasa, rosette_text_analytics, securitytrails, textrazor, twelve_data
Documents & Files: carbone, doc_certs, documenso, dropbox, excel, files_com, grist, pdf_co, share_point
Design & Media: canva, canvas, claid_ai, deepimage, heygen, metatextai
Customer Support: freshdesk, retently, servicem8, sevdesk, storeganise
Calendar & Scheduling: calendly, deadline_funnel, etermin, googlecalendar
Social Media: facebook, instagram, reddit
Location & Maps: addresszen, geoapify, google_maps, mapbox
Email Verification & Validation: clearout, icypeas, neverbounce, zerobounce
Other Integrations: bitwarden, canny, cardly, castingwords, confluence, formdesk, getform, habitica, headout, highergov, jira, keen_io, landbot, moonclerk, one_drive, outlook, googlesheets, resend, ritekit, sms_alert, tapfiliate, thanks_io, uptimerobot
</Accordion> </Accordions>For example, the GOOGLECALENDAR_GET_CURRENT_DATE_TIME request schema changes:
Previous (only a single type):
{
"timezone": {
"default": 0,
"description": "Timezone specification...",
"title": "Timezone",
"type": "string"
}
}
Now (Union types preserved):
{
"timezone": {
"anyOf": [
{ "type": "string" },
{ "type": "number" }
],
"default": 0,
"description": "Timezone specification...",
"title": "Timezone"
}
}
Similarly, nullable fields like page_token in GOOGLECALENDAR_LIST_CALENDARS:
Previous:
{
"page_token": {
"default": null,
"description": "Token for the page of results to return...",
"nullable": true,
"title": "Page Token",
"type": "string"
}
}
Now:
{
"page_token": {
"anyOf": [
{ "type": "string" },
{ "type": "null" }
],
"default": null,
"description": "Token for the page of results to return...",
"title": "Page Token"
}
}