Inbound SIP 404 "Does not matchTrunks or Dispatch Rules" with byte-identical +E.164 on trunk, rule, and INVITE — Telnyx → LiveKit Cloud (Frankfurt)

LiveKit Cloud edge returns SIP/2.0 404 Does not match Trunks or Dispatch Rules on every
inbound Telnyx call, despite the SIP INVITE’s To: header and the registered numbers /
inboundNumbers being byte-identical.

Project + setup

  • Project: p_1zxsb3c4qot (1zxsb3c4qot.sip.livekit.cloud)
  • Edge region: ofrankfurt1b
  • SIP provider: Telnyx (EU), Inbound Destination number format = +E.164, Origination number format = +E.164, transport TCP

LiveKit config (verified via lk sip inbound list --json + `lk sip dispatch list

--json`)

Trunk ST_xMKUQrTnrSkE (stagee):

{ "numbers": ["+351220600529", "+351920526106"], "allowed_addresses": [], "allowed_numbers":
 [] }

Dispatch rule SDR_R53pPt5GqMTK:
{ "inboundNumbers": ["+351220600529"], "trunkIds": ["ST_xMKUQrTnrSkE"], "rule":
{"dispatchRuleIndividual": {"roomPrefix": "restaurant-grottu-"}}, "roomConfig": {"agents":  
[{"agentName": "voice-agent"}]} }

PCAP from a failing call (SCL_kGmHa4AeWoDH)

INVITE sip:+351220600529@1zxsb3c4qot.sip.livekit.cloud:5060 SIP/2.0
Via: SIP/2.0/TCP 161.115.161.162:5060;branch=z9hG4bK...
From: "+351920192034" <sip:+351920192034@sip.telnyx.eu>;tag=NKatBHQ329Hgr
To: <sip:+351220600529@1zxsb3c4qot.sip.livekit.cloud:5060>
Call-ID: d4e73fe6-c1a8-4177-b97b-03d8fe602e7d

SIP/2.0 100 Processing
SIP/2.0 180 Ringing
SIP/2.0 404 Does not match Trunks or Dispatch Rules

toUri.user in the dashboard event: "+351220600529".
Trunk numbers[0]: "+351220600529" (raw bytes 2b333531323230363030353239).
Rule inboundNumbers[0]: "+351220600529" (same bytes).
Three identical strings; edge says no match.

What I've tried

1. Confirmed Telnyx Inbound Destination Number Format = +E.164 (saved + reloaded).
2. Confirmed trunk + rule registered as +E.164 only — no duplicate bare-E.164 entries (the  
known mixed-format pitfall
(https://community.livekit.io/t/troubleshooting-inbound-sip-calls-not-reaching-agent/226)). 
3. SIP URI in To: is @<project>.sip.livekit.cloud, not @IP (the most-common-cause from that 
thread).
4. allowed_addresses empty — no IP filter.
5. Tried bare-form inboundNumbers while Telnyx was sending +E.164: 404 (expected —
mismatch).
6. Recreated rules from scratch after delete; same 404.
7. Same trunk/rule was working historically (Apr 26 calls succeeded, durations 27–60s) —    
broke after the dispatch-rule-without-inboundNumbers catch-all cleanup on May 13.

Question

What does LiveKit's edge actually compare toUri.user against? Is there normalisation or a   
separate number registry beyond trunk.numbers + rule.inboundNumbers that I'm missing on     
Cloud? Or is this a known issue with the EU Frankfurt edge?

PCAP and a second failing call ID available on request.

I have tried everything giving this same same error

Just looking at the failed call you put the screenshot for above, https://cloud.livekit.io/projects/p_1zxsb3c4qot/telephony/SCL_pTjJFELKibTc/inbound, I see your dispatch rule SDR_26uF4ZuLVuUQ looks strange, i.e. it has unsupported properties (inboundNumbers), perhaps try replacing the dispatch rule . Your trunk looks ok to me, which is why I suspected the dispatch rule.

Dispatch rule docs:

Thanks issue is solved now