rpv
05/21/2025, 12:57 PM{}
) despite the tool having required parameters with strict validation. Interestingly, this only happens with one specific tool while another similar tool works perfectly.
## What's Working
- appointment_timeslots_tool
works correctly - the AI provides all required parameters
- The tool has 5 required parameters (ZipCode, Address, City, Phone, Email)
- The AI correctly fills these parameters based on the conversation
## What's Not Working
- appointment_creation_tool
consistently receives empty arguments {}
- The tool has 11 required parameters (CorrelationID, FirstName, LastName, etc.)
- Despite having all the information from the conversation and previous tool call, the AI sends arguments: {}
## Logs and Behavior
- First tool call (works): "arguments": {"ZipCode": "75001", "Address": "456 Oak Street", ...}
- Second tool call (fails): "arguments": {}
- I've tried simplifying the parameter structure to avoid nested objects, but the issue persists
- I've verified the AI has all the necessary information to fill in the parameters
Any assistance would be greatly appreciated!Vapi Support Bot
05/21/2025, 12:59 PMparameters
definition for your appointment_creation_tool
in your tool configuration. Make sure each required parameter is explicitly listed and not nested, and that the tool's strict
property is set to true
. For example:
json
{
"type": "function",
"function": {
"name": "appointment_creation_tool",
"strict": true,
"parameters": {
"type": "object",
"properties": {
"CorrelationID": { "type": "string" },
"FirstName": { "type": "string" },
"LastName": { "type": "string" }
// ...add all required fields
},
"required": ["CorrelationID", "FirstName", "LastName" /* ... */]
}
}
}
After updating, re-deploy and test. This ensures the AI knows exactly which fields to fill and avoids empty argument payloads.
Sources:
- [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
- [Prompting Guide](https://docs.vapi.ai/prompting-guide)Praveen
05/21/2025, 11:16 PMrpv
05/22/2025, 12:42 PMcall_GSQbLnNxGAgB7zhaQSo8pZcx
**Timestamp**: 2025-05-21 14:19:09.265 (Started At) - 2025-05-21 14:19:11.680 (Finished At)
**The Actual Issue**: Looking at this specific call, the AI sent most parameters but missed 2 required parameters despite having strict: true
validation:
- Missing: State
(required)
- Missing: RepID
(required)
The tool definition clearly shows 11 required parameters:
["CorrelationID", "FirstName", "LastName", "Phone", "Email", "Address", "City", "State", "ZipCode", "AppointmentDateTime", "RepID"]
But the AI only sent 10 parameters, omitting State
and RepID
.
**Model Behavior**: Initially discovered this issue was worse with Claude 3.7 Sonnet (would send completely empty arguments {}
), but after switching to OpenAI's model, I found it still occasionally misses required parameters despite strict: true
validation.
**Critical Issue**: This problem is compounded by the fact that when I send error responses back to the AI (like "ERROR: Missing required parameters: State, RepID"), the AI agent doesn't receive these messages (linked issue: https://discord.com/channels/1211482211119796234/1374830137845092455). So the AI has no way to know it made an incomplete tool call and can't self-correct.
These two issues combined make the platform extremely unreliable - the strict validation isn't working, and error feedback doesn't reach the AI.rpv
05/22/2025, 12:45 PMtoolu_011yxevzp3VrHYsf9BgYETQ2
This call demonstrates the Claude 3.7 Sonnet problem - completely empty arguments {}
despite having 11 required parameters and strict: true
validation:
json
"function": {
"name": "appointment_creation_tool",
"arguments": {}
}
Praveen
05/23/2025, 12:46 AMrpv
05/23/2025, 12:28 PMcall_4jRGUjRFivxyf75J3Uu2eoBh
- __Vapi Call ID__: 77c764ef-deb5-481b-a8b0-646a1fc2a730
This is the call where the AI was missing the Email
parameter despite strict: true
validation, and where the error response wasn't reaching the AI.Vapi Support Bot
05/23/2025, 12:30 PMappointment_creation_tool
configuration to ensure all required parameters are explicitly listed (not nested) and included in the required
array, with "strict": true
set. For example:
json
{
"type": "function",
"function": {
"name": "appointment_creation_tool",
"strict": true,
"parameters": {
"type": "object",
"properties": {
"CorrelationID": { "type": "string" },
"FirstName": { "type": "string" },
"LastName": { "type": "string" }
// ...add all required fields
},
"required": ["CorrelationID", "FirstName", "LastName" /* ... */]
}
}
}
After updating, redeploy and test. Note: If error responses aren't reaching the AI for self-correction, this is a known limitation—consider raising a support ticket if this is critical for your workflow.
Sources: [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools), [Prompting Guide](https://docs.vapi.ai/prompting-guide)
Sources:
- [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
- [Prompting Guide](https://docs.vapi.ai/prompting-guide)Praveen
05/24/2025, 3:35 AMrpv
05/28/2025, 3:09 PMd08a2eb6-ee9a-4680-893b-886c16ce4362
you can see how the appointment_timeslots tool works but the appointment_creation tool is not working, even when I have strict parameters validation and I'm sending back and error message with the missing required parameters:
"result": "ERROR: Missing required parameters for appointment creation. Please provide CorrelationID, FirstName, LastName, Phone, Email, Address, City, State, ZipCode, AppointmentDateTime, and RepID.",
"toolCallId": "toolu_01PLcH3akcpcY7CDtcPjGDHD"
Vapi Support Bot
05/28/2025, 3:11 PMVapi Support Bot
05/28/2025, 3:11 PMVapi Support Bot
05/28/2025, 3:11 PMappointment_creation_tool
configuration explicitly lists all required parameters (no nesting) and that "strict": true
is set. Here’s a sample structure:
json
{
"type": "function",
"function": {
"name": "appointment_creation_tool",
"strict": true,
"parameters": {
"type": "object",
"properties": {
"CorrelationID": { "type": "string" },
"FirstName": { "type": "string" },
"LastName": { "type": "string" },
"Phone": { "type": "string" },
"Email": { "type": "string" },
"Address": { "type": "string" },
"City": { "type": "string" },
"State": { "type": "string" },
"ZipCode": { "type": "string" },
"AppointmentDateTime": { "type": "string" },
"RepID": { "type": "string" }
},
"required": [
"CorrelationID", "FirstName", "LastName", "Phone", "Email",
"Address", "City", "State", "ZipCode", "AppointmentDateTime", "RepID"
]
}
}
}
After updating, redeploy and test. If the issue persists and error feedback is not reaching the AI, consider raising a support ticket, as this is a known platform limitation.
[Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
Sources:
- [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
- [Prompting Guide](https://docs.vapi.ai/prompting-guide)Vapi Support Bot
05/28/2025, 3:11 PMappointment_creation_tool
configuration explicitly lists all required parameters (no nesting) and that "strict": true
is set. Here’s a sample structure:
json
{
"type": "function",
"function": {
"name": "appointment_creation_tool",
"strict": true,
"parameters": {
"type": "object",
"properties": {
"CorrelationID": { "type": "string" },
"FirstName": { "type": "string" },
"LastName": { "type": "string" },
"Phone": { "type": "string" },
"Email": { "type": "string" },
"Address": { "type": "string" },
"City": { "type": "string" },
"State": { "type": "string" },
"ZipCode": { "type": "string" },
"AppointmentDateTime": { "type": "string" },
"RepID": { "type": "string" }
},
"required": [
"CorrelationID", "FirstName", "LastName", "Phone", "Email",
"Address", "City", "State", "ZipCode", "AppointmentDateTime", "RepID"
]
}
}
}
After updating, redeploy and test. If the issue persists and error feedback is not reaching the AI, consider raising a support ticket, as this is a known platform limitation.
[Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
Sources:
- [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
- [Prompting Guide](https://docs.vapi.ai/prompting-guide)rpv
05/28/2025, 3:11 PMVapi Support Bot
05/28/2025, 3:12 PMTo: support@vapi.ai
Subject: Tool Call Validation Issue - appointment_creation_tool
[Describe your issue, include call IDs, error logs, and steps to reproduce.]
Source:
- [Vapi Support Documentation](https://docs.vapi.ai/support)Vapi Support Bot
05/28/2025, 3:12 PMTo: support@vapi.ai
Subject: Tool Call Validation Issue - appointment_creation_tool
[Describe your issue, include call IDs, error logs, and steps to reproduce.]
Source:
- [Vapi Support Documentation](https://docs.vapi.ai/support)Vapi Support Bot
05/28/2025, 3:13 PMVapi Support Bot
05/28/2025, 3:13 PMrpv
05/28/2025, 3:13 PMVapi Support Bot
05/28/2025, 3:14 PMproperties
, and there are no examples or instructions for using nested parameters. While this strongly suggests that nested parameters are not supported, there is no explicit statement confirming this or describing the system's behavior if nesting is attempted.
Could you clarify if you have a specific use case that requires nested parameters, or are you asking to confirm whether nesting is officially unsupported due to the issues you've observed?
For reference, see the [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools).
Source:
- [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)Vapi Support Bot
05/28/2025, 3:14 PMproperties
, and there are no examples or instructions for using nested parameters. While this strongly suggests that nested parameters are not supported, there is no explicit statement confirming this or describing the system's behavior if nesting is attempted.
Could you clarify if you have a specific use case that requires nested parameters, or are you asking to confirm whether nesting is officially unsupported due to the issues you've observed?
For reference, see the [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools).
Source:
- [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)Vapi Support Bot
05/28/2025, 3:14 PMproperties
object, as shown in the official examples. Attempting to use nested parameters is not documented as supported and may result in unexpected behavior.
Would you like more details on how Vapi handles invalid (e.g., nested) tool configurations at runtime, or are you asking about possible future support for nested parameters?
[Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
Source:
- [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)Vapi Support Bot
05/28/2025, 3:14 PMproperties
object, as shown in the official examples. Attempting to use nested parameters is not documented as supported and may result in unexpected behavior.
Would you like more details on how Vapi handles invalid (e.g., nested) tool configurations at runtime, or are you asking about possible future support for nested parameters?
[Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
Source:
- [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)Vapi Support Bot
05/28/2025, 3:15 PMparameters
object—nesting (objects within objects) is not allowed. If you attempt to use nested parameters, the platform's behavior is not documented, so it is best to avoid nesting entirely.
Reference: [Custom Tools Documentation – "no nesting"](https://docs.vapi.ai/tools/custom-tools)
Source:
- [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)Praveen
05/29/2025, 2:50 AM