diff --git a/common/xudp/xudp.go b/common/xudp/xudp.go
index 32dda614..a162334a 100644
--- a/common/xudp/xudp.go
+++ b/common/xudp/xudp.go
@@ -47,6 +47,9 @@ func init() {
 }
 
 func GetGlobalID(ctx context.Context) (globalID [8]byte) {
+	if cone := ctx.Value("cone"); cone == nil || !cone.(bool) { // cone is nil only in some unit tests
+		return
+	}
 	if inbound := session.InboundFromContext(ctx); inbound != nil && inbound.Source.Network == net.Network_UDP &&
 		(inbound.Name == "dokodemo-door" || inbound.Name == "socks" || inbound.Name == "shadowsocks") {
 		h := blake3.New(8, BaseKey)