I’m running an app deployed on Fly (Machines, not Nomad) that’s supposed to receive UDP packets on port 3478 (for STUN-style inspection). Everything appears to be configured correctly:
fly.tomlincludes a[[services]]block forprotocol = "udp",internal_port = 3478- Logs show:
✅ UDP server listening on port 3478 - App is deployed to the
lhrregion - App binds using Node.js
dgram.createSocket('udp4')and listens on0.0.0.0 - IPv4 A record resolves fine via
dig - I’ve tested sending UDP packets using
nc -uandncat, both directly to the IPv4 address
However, the app never receives any messages — the udpSocket.on("message") handler is never triggered, and nothing logs during tests.
I’ve also verified:
- WebSocket server on port 8080 is working and logs properly
- No errors are thrown when binding to UDP
- No use of
processes = ["app"](I removed that line to be safe)
Is there something I might be missing for Machines in lhr to receive UDP traffic on 3478?
Thanks — happy to provide a repro or minimal config privately if needed.