custom tts not sending requests to server
# support
a
My voice is configured like so:
Copy code
{
  "provider": "custom-voice",
  "server": {
    "url": "http://localhost:8004/vapi/tts",
    "secret": "your-secret-token",
    "headers": {
      "Content-Type": "application/json",
      "X-API-Version": "v1"
    }
  },
  "fallbackPlan": {
    "voices": [
      {
        "provider": "openai",
        "voiceId": "shimmer"
      }
    ]
  }
}
But i just dont get any requests. In the logs it just shows as "voice-input" request but nothing more. Like just that:
Copy code
{
  "id": "log-9",
  "level": 30,
  "time": 1768066761978,
  "timestamp": 1768066761978000000,
  "severityText": "INFO",
  "severityNumber": 9,
  "body": "Voice input",
  "attributes": {
    "category": "voice",
    "callId": "019ba8fd-b3dc-7cc5-830f-8c1ed8dff35a",
    "orgId": "5f65a35d-3681-4d89-a457-fce850b2aacb",
    "text": "Welcome to our service."
  }
}
Call ID is: 019ba8fd-b3dc-7cc5-830f-8c1ed8dff35a
c
Hi there, Thank you for your message. Our team is currently out of the office. We operate Monday through Friday, from 9:00 AM to 8:00 PM Pacific Standard Time (PST). We’ll get back to you as soon as possible during our normal business hours. If your message is urgent, please mark it accordingly or include “URGENT” in the subject line, and we’ll do our best to respond promptly. Warm regards, Vapi Customer Support Team
j
It looks like VAPI is only handling voice input (STT) right now — your custom TTS endpoint is never being called, which is why you don’t see any requests. This usually happens when the TTS can’t be reached (for example, localhost isn’t accessible from VAPI’s servers) or when audio output isn’t actually being triggered. Another common case is the agent responding in text-only, so TTS never fires and the fallback doesn’t kick in either. The key pain point here is that VAPI has nothing to “speak,” or nowhere to send it. Is your TTS server publicly accessible, and do you see any incoming requests at all when the agent responds? @Armin - Chatarmin
a
@Jarrah yeah so I made it pubicly available. Then yesterday i noticed it worked for a while. Like from 5 test runs, 4 times it worked. Now I opened my laptop again (didnt change anything in the config), suddenly vapi doesnt send anything to my endpoint again ... Super weird man
j
Yeah, this actually lines up with a pattern I’ve seen before. When a custom TTS works sometimes and then randomly stops, it’s almost never the config — it’s usually endpoint stability (tunnel sleeping, IP changes, cold starts) or VAPI dropping the call if the TTS response timing/format is even slightly off. The tricky part is VAPI won’t always surface this as an error, so it feels “random” from the outside. The fix is usually adding proper health checks, stricter logging around the callId, and making sure the endpoint is truly stable and fast. If you want, let's discuss more privately and we can look at your setup together — happy to help you get this rock solid. @Armin - Chatarmin
c
Hi Armin, I have noticed that your voice configuration's server.url has an localhost address. The server URL should be publicly accessible so that Vapi's servers can access the endpoint and retrieve the voice data from your server. If you are running your voice endpoint locally, try to use a tunnelling service to expose your endpoint publicly. This should help solve your issue.
a
Thanks got it Do I need to enable the "voice-input" server message to make this work? Because now when enabled, I also get the "voice-input" server messages when i am NOT using a custom TTS
c
Yes, you need to keep the voice-input server message enabled to make your custom voice work. Since this is a server message seperate from custom voice, you will still receive the voice-input server messages even when you are not using custom voice. That is an intended behavior.
a
Ok but then I get this voice input on my custom tts but also on my server url where all my other server events are coming to. So how should I handle that? Just ignore the voice input requests?
c
Yes, it would best to ignore the voice-input requests.
a
thanks Bharath
c
You are welcome!