I'm experiencing what appears to be a regional routing/peering issue between Moroccan networks and Vercel's Edge Infrastructure for custom domains.
My project:
Custom domain: loko.ma
Project: loko-app
Vercel deployment: loko-app-two.vercel.app
Location: Morocco
The Vercel deployment works immediately, but the custom domain times out from the same connection:
loko-app-two.vercel.app → works immediately ✅
loko.ma → connection timeout ❌
DNS and Vercel configuration are valid
Both Cloudflare and Google DNS correctly resolve the domain:
nslookup loko.ma 1.1.1.1
Name: loko.ma
Address: 216.198.79.1
nslookup loko.ma 8.8.8.8
Name: loko.ma
Address: 216.198.79.1
www.loko.ma also resolves correctly through Vercel:
Name: b2656d518f981729.vercel-dns-017.com
Addresses:
64.29.17.65
216.198.79.65
Alias: www.loko.ma
Vercel CLI confirms:
npx vercel domains verify loko.ma
Success! Valid Configuration:
loko.ma is configured (A record)
and verified for project loko-app
HTTPS/TCP connectivity fails
A curl timing test from the affected connection gives:
DNS: 0.015844s
Connection: 0.000000s
TLS: 0.000000s
Time to first byte: 0.000000s
TOTAL: 21.034438s
DNS resolution therefore completes in ~16 ms, but the TCP connection is never established.
Testing port 443 directly:
Test-NetConnection 216.198.79.1 -Port 443
RemoteAddress : 216.198.79.1
RemotePort : 443
TcpTestSucceeded : False
I also tested the second Vercel IP:
Test-NetConnection 64.29.17.1 -Port 443
RemoteAddress : 64.29.17.1
RemotePort : 443
TcpTestSucceeded : False
VPN test strongly indicates a routing issue
This is the most important observation:
Without VPN from Morocco:loko.ma times out ❌
With VPN on the exact same device:loko.ma loads immediately ✅
Without VPN:loko-app-two.vercel.app loads immediately ✅
The issue is also reproducible directly on an iPhone over 5G in Morocco.
This strongly suggests that the application itself, DNS configuration and Vercel deployment are healthy, but there is a reachability/routing problem towards Vercel's custom-domain Anycast infrastructure from at least some Moroccan networks.
Vercel Agent reached the same conclusion
I also ran this through Vercel Agent. It concluded:
“This indicates a regional network routing or peering issue between your ISP and Vercel's Edge Infrastructure.”
The Agent asked me to run Vercel's official vercel-connect-debug diagnostic script from the affected connection.
I have done so and have the resulting vercel-debug.txt available.
Could someone from Vercel please escalate this to the Edge Infrastructure / Network team?
I'm happy to provide the diagnostic file, additional traceroutes, ISP/ASN information, or perform additional tests if needed.
Thanks!
The domain troubleshooting guide can help with most custom domain configuration issues. You might be able to use that guide to solve it before a human is available to help you. Then you can come back here and share the answer for bonus points.
+---------------------------------------
+------- Testing 216.198.79.1
Checking headers via 216.198.79.1
Connecting to hostname: 216.198.79.1
Trying 216.198.79.1:443...
Connection timed out after 3014 milliseconds
closing connection #0
Checking ping to 216.198.79.1
Envoi d'une requête 'Ping' 216.198.79.1 avec 32 octets de données :
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Détermination de l'itinéraire vers 216.198.79.1 avec un maximum de 30 sauts.
1 2 ms 1 ms 1 ms 10.64.73.133
2 104 ms 22 ms 19 ms 10.43.108.2
3 79 ms 26 ms 56 ms 10.43.108.33
4 22 ms 19 ms * 10.43.108.42
5 45 ms 18 ms 20 ms 10.41.3.30
6 * * * Délai d'attente de la demande dépassé.
7 * * * Délai d'attente de la demande dépassé.
8 * * * Délai d'attente de la demande dépassé.
9 * * * Délai d'attente de la demande dépassé.
10 * * * Délai d'attente de la demande dépassé.
11 * * * Délai d'attente de la demande dépassé.
12 * * * Délai d'attente de la demande dépassé.
13 * * * Délai d'attente de la demande dépassé.
14 * * * Délai d'attente de la demande dépassé.
15 * * * Délai d'attente de la demande dépassé.
16 * * * Délai d'attente de la demande dépassé.
17 * * * Délai d'attente de la demande dépassé.
18 * * * Délai d'attente de la demande dépassé.
19 * * * Délai d'attente de la demande dépassé.
20 * * * Délai d'attente de la demande dépassé.
21 * * * Délai d'attente de la demande dépassé.
22 * * * Délai d'attente de la demande dépassé.
23 * * * Délai d'attente de la demande dépassé.
24 * * * Délai d'attente de la demande dépassé.
25 * * * Délai d'attente de la demande dépassé.
26 * * * Délai d'attente de la demande dépassé.
27 * * * Délai d'attente de la demande dépassé.
28 * * * Délai d'attente de la demande dépassé.
29 * * * Délai d'attente de la demande dépassé.
30 * * * Délai d'attente de la demande dépassé.
+---------------------------------------
+------- Testing 216.198.79.65
Checking headers via 216.198.79.65
Connecting to hostname: 216.198.79.65
Trying 216.198.79.65:443...
Connection timed out after 3004 milliseconds
closing connection #0
Checking ping to 216.198.79.65
Envoi d'une requête 'Ping' 216.198.79.65 avec 32 octets de données :
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Détermination de l'itinéraire vers 216.198.79.65 avec un maximum de 30 sauts.
1 1 ms 1 ms 1 ms 10.64.73.133
2 65 ms 28 ms 19 ms 10.43.108.2
3 22 ms 24 ms 38 ms 10.43.108.33
4 26 ms 24 ms 32 ms 10.43.108.42
5 47 ms * 28 ms 10.41.3.30
6 * * * Délai d'attente de la demande dépassé.
7 * * * Délai d'attente de la demande dépassé.
8 * * * Délai d'attente de la demande dépassé.
9 * * * Délai d'attente de la demande dépassé.
10 * * * Délai d'attente de la demande dépassé.
11 * * * Délai d'attente de la demande dépassé.
12 * * * Délai d'attente de la demande dépassé.
13 * * * Délai d'attente de la demande dépassé.
14 * * * Délai d'attente de la demande dépassé.
15 * * * Délai d'attente de la demande dépassé.
16 * * * Délai d'attente de la demande dépassé.
17 * * * Délai d'attente de la demande dépassé.
18 * * * Délai d'attente de la demande dépassé.
19 * * * Délai d'attente de la demande dépassé.
20 * * * Délai d'attente de la demande dépassé.
21 * * * Délai d'attente de la demande dépassé.
22 * * * Délai d'attente de la demande dépassé.
23 * * * Délai d'attente de la demande dépassé.
24 * * * Délai d'attente de la demande dépassé.
25 * * * Délai d'attente de la demande dépassé.
26 * * * Délai d'attente de la demande dépassé.
27 * * * Délai d'attente de la demande dépassé.
28 * * * Délai d'attente de la demande dépassé.
29 * * * Délai d'attente de la demande dépassé.
30 * * * Délai d'attente de la demande dépassé.
Envoi d'une requête 'Ping' 216.198.79.129 avec 32 octets de données :
Réponse de 216.198.79.129 : octets=32 temps=32 ms TTL=245
Réponse de 216.198.79.129 : octets=32 temps=29 ms TTL=245
Réponse de 216.198.79.129 : octets=32 temps=31 ms TTL=245
Réponse de 216.198.79.129 : octets=32 temps=29 ms TTL=245
Statistiques Ping pour 216.198.79.129:
Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
Minimum = 29ms, Maximum = 32ms, Moyenne = 30ms
+---------------------------------------
+---------------------------------------
+------- Testing 216.198.79.193
Checking headers via 216.198.79.193
Connecting to hostname: 216.198.79.193
Trying 216.198.79.193:443...
schannel: disabled automatic use of client certificate
ALPN: curl offers http/1.1
ALPN: server accepted http/1.1
Connected to 216.198.79.193 (216.198.79.193) port 443
Envoi d'une requête 'Ping' 216.198.79.193 avec 32 octets de données :
Réponse de 216.198.79.193 : octets=32 temps=36 ms TTL=245
Réponse de 216.198.79.193 : octets=32 temps=58 ms TTL=245
Réponse de 216.198.79.193 : octets=32 temps=121 ms TTL=245
Réponse de 216.198.79.193 : octets=32 temps=62 ms TTL=245
Statistiques Ping pour 216.198.79.193:
Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
Minimum = 36ms, Maximum = 121ms, Moyenne = 69ms
+---------------------------------------
+---------------------------------------
+------- Testing 64.29.17.1
Checking headers via 64.29.17.1
Connecting to hostname: 64.29.17.1
Trying 64.29.17.1:443...
Connection timed out after 3011 milliseconds
closing connection #0
Checking ping to 64.29.17.1
Envoi d'une requête 'Ping' 64.29.17.1 avec 32 octets de données :
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Détermination de l'itinéraire vers 64.29.17.1 avec un maximum de 30 sauts.
1 1 ms 1 ms 13 ms 10.64.73.133
2 19 ms 25 ms 29 ms 10.43.108.2
3 * * 43 ms 10.43.108.33
4 51 ms 21 ms 30 ms 10.43.108.42
5 20 ms 21 ms 26 ms 10.41.3.30
6 * * * Délai d'attente de la demande dépassé.
7 * * * Délai d'attente de la demande dépassé.
8 * * * Délai d'attente de la demande dépassé.
9 * * * Délai d'attente de la demande dépassé.
10 * * * Délai d'attente de la demande dépassé.
11 * * * Délai d'attente de la demande dépassé.
12 * * * Délai d'attente de la demande dépassé.
13 * * * Délai d'attente de la demande dépassé.
14 * * * Délai d'attente de la demande dépassé.
15 * * * Délai d'attente de la demande dépassé.
16 * * * Délai d'attente de la demande dépassé.
17 * * * Délai d'attente de la demande dépassé.
18 * * * Délai d'attente de la demande dépassé.
19 * * * Délai d'attente de la demande dépassé.
20 * * * Délai d'attente de la demande dépassé.
21 * * * Délai d'attente de la demande dépassé.
22 * * * Délai d'attente de la demande dépassé.
23 * * * Délai d'attente de la demande dépassé.
24 * * * Délai d'attente de la demande dépassé.
25 * * * Délai d'attente de la demande dépassé.
26 * * * Délai d'attente de la demande dépassé.
27 * * * Délai d'attente de la demande dépassé.
28 * * * Délai d'attente de la demande dépassé.
29 * * * Délai d'attente de la demande dépassé.
30 * * * Délai d'attente de la demande dépassé.
+---------------------------------------
+------- Testing 64.29.17.65
Checking headers via 64.29.17.65
Connecting to hostname: 64.29.17.65
Trying 64.29.17.65:443...
Connection timed out after 3013 milliseconds
closing connection #0
Checking ping to 64.29.17.65
Envoi d'une requête 'Ping' 64.29.17.65 avec 32 octets de données :
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Détermination de l'itinéraire vers 64.29.17.65 avec un maximum de 30 sauts.
1 1 ms 7 ms 1 ms 10.64.73.133
2 51 ms 40 ms 28 ms 10.43.108.2
3 * * * Délai d'attente de la demande dépassé.
4 22 ms 22 ms 18 ms 10.43.108.42
5 47 ms 38 ms 29 ms 10.41.3.30
6 * * * Délai d'attente de la demande dépassé.
7 * * * Délai d'attente de la demande dépassé.
8 * * * Délai d'attente de la demande dépassé.
9 * * * Délai d'attente de la demande dépassé.
10 * * * Délai d'attente de la demande dépassé.
11 * * * Délai d'attente de la demande dépassé.
12 * * * Délai d'attente de la demande dépassé.
13 * * * Délai d'attente de la demande dépassé.
14 * * * Délai d'attente de la demande dépassé.
15 * * * Délai d'attente de la demande dépassé.
16 * * * Délai d'attente de la demande dépassé.
17 * * * Délai d'attente de la demande dépassé.
18 * * * Délai d'attente de la demande dépassé.
19 * * * Délai d'attente de la demande dépassé.
20 * * * Délai d'attente de la demande dépassé.
21 * * * Délai d'attente de la demande dépassé.
22 * * * Délai d'attente de la demande dépassé.
23 * * * Délai d'attente de la demande dépassé.
24 * * * Délai d'attente de la demande dépassé.
25 * * * Délai d'attente de la demande dépassé.
26 * * * Délai d'attente de la demande dépassé.
27 * * * Délai d'attente de la demande dépassé.
28 * * * Délai d'attente de la demande dépassé.
29 * * * Délai d'attente de la demande dépassé.
30 * * * Délai d'attente de la demande dépassé.
Envoi d'une requête 'Ping' 64.29.17.129 avec 32 octets de données :
Réponse de 64.29.17.129 : octets=32 temps=28 ms TTL=245
Réponse de 64.29.17.129 : octets=32 temps=32 ms TTL=245
Réponse de 64.29.17.129 : octets=32 temps=30 ms TTL=245
Réponse de 64.29.17.129 : octets=32 temps=35 ms TTL=245
Statistiques Ping pour 64.29.17.129:
Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
Minimum = 28ms, Maximum = 35ms, Moyenne = 31ms
+---------------------------------------
+---------------------------------------
+------- Testing 64.29.17.193
Checking headers via 64.29.17.193
Connecting to hostname: 64.29.17.193
Trying 64.29.17.193:443...
schannel: disabled automatic use of client certificate
Envoi d'une requête 'Ping' 64.29.17.193 avec 32 octets de données :
Réponse de 64.29.17.193 : octets=32 temps=36 ms TTL=245
Réponse de 64.29.17.193 : octets=32 temps=32 ms TTL=245
Réponse de 64.29.17.193 : octets=32 temps=37 ms TTL=245
Réponse de 64.29.17.193 : octets=32 temps=51 ms TTL=245
Statistiques Ping pour 64.29.17.193:
Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
Minimum = 32ms, Maximum = 51ms, Moyenne = 39ms
+---------------------------------------