LiveKit Cloud — Multiple webhook URLs configured, but only first URL receives events

Environment

  • LiveKit Cloud (staging project)
  • Self-hosted LiveKit (production) — working correctly
  • Local development via Cloudflare Tunnel

What I expected
With multiple webhook URLs configured in the LiveKit Cloud dashboard (Settings → Webhooks), I expected all configured URLs to receive webhook events — the same way my self-hosted instance behaves when multiple URLs are listed in livekit.yaml.

What happened
I have three environments:

  1. Production — self-hosted LiveKit, multiple webhook URLs in livekit.yaml — works perfectly, all URLs receive events
  2. Staging — LiveKit Cloud
  3. Development — Same LiveKit Cloud project using a Cloudflare Tunnel

For my staging LiveKit Cloud project, I added two webhook URLs in the dashboard:

  • My development URL (Cloudflare Tunnel)
  • My staging URL

When only the development URL was configured, webhooks were delivered correctly.

As soon as I added the staging URL as a second webhook, the staging URL received no webhook events at all, even though conversations were happening normally. Removing the development URL immediately resolved the issue — the staging URL then received events correctly.

Key observation
This behavior does not occur on my self-hosted instance. With multiple URLs in livekit.yaml, all URLs receive all events independently. The issue appears to be specific to LiveKit Cloud’s webhook delivery when multiple URLs are configured via the dashboard.

Any clarity on this would be greatly appreciated.

Can you please share some session IDs where the webhook events failed, i.e. a session where you had two configured webhooks on LiveKit cloud, and I’ll see if there is anything in the server logs to explain the failed delivery.

Interestingly, there was another webhook question in the community this morning, but I’m not sure if the two are related: