Phantom X-Vapi-Secret Header Causing 401s Despite Bearer Credential Configured
Here’s the short Discord-ready breakdown you can drop in support:
---
I only have one webhook credential set up — a custom Bearer token — and it’s selected at both my Org and my Phone Number in the Vapi dashboard.
But when calls come in, my server logs show:
We also added debug logging on the transient assistants we return, and they have no
So the only credential configured is Bearer (…25c3), but Vapi is still sending an
Looks like a leftover legacy
App:
---
I only have one webhook credential set up — a custom Bearer token — and it’s selected at both my Org and my Phone Number in the Vapi dashboard.
But when calls come in, my server logs show:
We also added debug logging on the transient assistants we return, and they have no
server or headers. Example:So the only credential configured is Bearer (…25c3), but Vapi is still sending an
X-Vapi-Secret …9e40 header on every webhook. That phantom secret doesn’t exist anywhere in our config, so our server rejects it with 401 and transfers fail.Looks like a leftover legacy
server.secret on our org from before you removed it in May 2025. Can you please clear it so Vapi only uses the Bearer credential we’ve configured?App:
vocly (Fly.io) #webhooks