Vercel custom IDN domain returns HTTP 200 but response body stalls during download

Hi everyone,

I have a static site deployed on Vercel that works correctly on the project domain but hangs on my custom IDN domain.

Affected Domains

Working domain:
https://greenhouse-eosin.vercel.app/ — full page loads normally

Affected domain:
https://www.xn–90ahalobcoje5a6c9c.xn–p1ai/ — browser shows infinite loading

Issue Details

  • No redirect loop
  • Response starts with HTTP 200 OK
  • Body download stalls at ~21,085 bytes (out of 154,162 total)
  • Same deployment and content load fully on the .vercel.app domain

What I’ve Tried

  1. Re-added both domains (www and apex) in project settings
  2. Set www as primary, apex as redirect
  3. DNS is delegated to Vercel nameservers
  4. Cleared local DNS and browser caches
  5. Tested in multiple browsers
  6. Verified with curl — custom domain stalls, .vercel.app completes

My Guess

Something in edge routing / CDN path / TLS handling specific to IDN domains.

Has anyone experienced similar issues with IDN (punycode) domains? Any suggestions appreciated!

Hi mate! I tested both domains and couldn’t reproduce a global issue, both return 200 and load the full ~154 KB HTML with identical content, so this doesn’t look like a deployment or DNS problem.

Given your symptom (stalling around ~21 KB), this points to a region / edge / protocol-specific issue (likely a Vercel POP or HTTP/2/HTTP/3 behavior affecting the IDN hostname).

Things that would help confirm:

  • Force HTTP/1.1 vs HTTP/2 with curl

  • Test from another network (mobile/VPN)

  • Share a failing x-vercel-id

If it only happens in certain networks/regions, Vercel can trace it to a specific edge node.

I think your setup looks correct, this is very likely on the edge delivery side. hope this helps

Hi team hope this helps!

Behavior

  • 200 OK returned

  • Response stalls at ~21 KB (expected ~154 KB)

  • No redirect loop

  • Reproducible by user (browser + curl)

  • .vercel.app works normally

Verification

  • When successful, both domains return identical content (same size, hash, headers)

  • Range requests work

  • DNS and deployment appear correct

  • Issue not globally reproducible

Interpretation

Likely edge-specific issue (region/POP/protocol), possibly:

  • HTTP/2 or HTTP/3 handling

  • cache inconsistency across edge nodes

  • punycode hostname routing/SNI differences

Helpful debugging data

  • Failing x-vercel-id

  • HAR file

  • Affected region/ISP

  • Whether HTTP/1.1 avoids the issue

Conclusion: not a project/config issue; likely isolated to specific edge nodes serving the custom IDN hostname.

Seems to be working now, I tried connecting from the UK. Are you still seeing this?

1) x-vercel-id

arn1::5595f-1775209274782-579dda772cfd

  1. In chrome was used http2 , after chrome.exe --disable-http2 --disable-quic site partly loaded

  1. Cant added har file because of type of file even txt ( www.xn--90ahalobcoje5a6c9c.xn--p1ai - Google Docs )
  2. Region and provider: St. Petersburg, Rostelecom
  3. It’s depended on region Проверка доступности сайта по всему миру — General iT

I located in Russia and still have problem(

Could you go through this?