BUG in VAPI Tools
# support
j
Vapi Tools call Webhook isn't sending Required parameters, even though required checkbox is checked and strict validation is on Call ID: call_nrZb7S4AcXmqctv00Wrp1rH6 Current Response:
Copy code
"arguments": {
            "date_time_wordings": "fourth of May 2026",
            "surgeonName": "Anderson Richard",
            "hospitalName": "Apollo ; Varodara region, Northeast CA"
          }
Expected response:
Copy code
"arguments": {
            "date_time_wordings": "fourth of May 2026",
            "surgeonName": "Anderson Richard",
            "hospitalName": "Apollo ; Varodara region, Northeast CA",
            
            "callerName": "XYZ" // This is a required field
          }
v
Thank you for reporting this issue. To help diagnose the problem, could you please share the exact configuration (JSON or screenshot) of your tool's parameters, especially how the "callerName" field is marked as required? This will help determine if the required parameter is set up correctly in your tool definition. Source: - [Vapi Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
j
k
Looking into it
a
Can you send me the call_id? Which can be found under call logs section?
s
@Jack Sparrow For
search
function:- - strict: true means the model must follow the exact schema - it can only include properties defined in your schema, but doesn't force all defined properties to be present - required: ["property1", "property2"] specifies which properties MUST be included in the request These work independently: 1. With strict: true, the model can only use properties defined in your schema 2. The required array controls which specific properties are mandatory The best practice is: Use strict: true to prevent unexpected properties Include only truly mandatory properties in the required array
Copy code
json
      "function": {
        "name": "search",
        "strict": true,
        "parameters": {
          "type": "object",
          "required": ["hospitalName", "surgeonName"],
          "properties": {
            "date": {
              "type": "string",
              "description": "Date of the case\nformat: \"2025-4-20\""
            },
            "patientName": {
              "type": "string",
              "description": "Name of the patient\nformat: \"firstname lastname\""
            },
            "surgeonName": {
              "type": "string",
              "description": "Name of the surgeon"
            },
            "hospitalName": {
              "type": "string",
              "description": "Name of the hospital"
            },
            "date_time_wordings": {
              "type": "string",
              "description": "date and time in wordings\n\n#if the user describes something like today , yesterday , tomorrow , next Friday , last Monday anything like this then send those wordings.\nexample :\n\"last Monday\" : \"last Monday\""
            }
          }
        }
For
reschedule
function:- - The tool call is missing the required parameters caseNo and callerName which violates both the required property constraint and the strict: true setting. - This appears to be an implementation error. The model should have been forced to include all required properties in its tool call.
This appears to be a discrepancy in the OpenAI model's behavior rather than an implementation error in the Vapi codebase. When strict: true is set, OpenAI should enforce that: - All required properties are present - Only properties defined in the schema are used From the codebase, I can see that Vapi correctly passes the strict parameter to the OpenAI API and properly sets up the required properties. The issue likely lies with how the model responded in this particular case. I would recommend: - Ensuring all your required fields are clearly described with verbosity in your schema
j
call_nrZb7S4AcXmqctv00Wrp1rH6
required parameters was working perfectly till saturday, I am working on Vapi for more than 3 months and havn't seen this issue yet that required parameters was missing in toolcall webhook. All the required parameters are defined well in both Function and Assistant prompt. Still facing this issue, Can you please help me decide if this is solvable issue so I stick with my current backend, or I need to change the backend to handle missing required values in validation.
a
Call ID can be found in call logs section.
You have provided the wrong call_id, so I won't be able to check the logs.
j
80b4f4ca-4786-4f48-99a6-854716d870b0 this is call id of another call but same issue, required field Case Number is missing
s
@Jack Sparrow Can you Increase your assistant's maximum tokens to 500, and then try another call? LMK How it goes for you.
j
we had the same prompt token settings since beginning and this issue occurred from just last week although, I've changed max tokens to 1k
a
Hi Jack, checking if this is resolved/solved for you?
Hey Jack, can you make a change in your prompt to trigger the tool with explicitly mentioning the parameters to be used.
Copy code
trigger the reschedule tool with confirm, case_no, caller_name, ...., paramN
Most likely the incomplete tools calling is related to the transcription and prompt but this can help you solve it.
3 Views