Quick answer: Server response headers: Cross-Origin-Embedder-Policy: require-corp + Cross-Origin-Opener-Policy: same-origin.

Browser console: “SharedArrayBuffer is not defined.” Godot Web build needs it for threads. Cross-origin isolation gates SAB.

The Fix

# Apache .htaccess
<Files "index.html">
    Header set Cross-Origin-Embedder-Policy "require-corp"
    Header set Cross-Origin-Opener-Policy "same-origin"
</Files>

# Nginx
location / {
    add_header Cross-Origin-Embedder-Policy "require-corp";
    add_header Cross-Origin-Opener-Policy "same-origin";
}

# Vercel _headers
/*
  Cross-Origin-Embedder-Policy: require-corp
  Cross-Origin-Opener-Policy: same-origin

itch.io has a checkbox for SharedArrayBuffer support that sets these headers automatically.

Verifying

DevTools Network tab shows headers. self.crossOriginIsolated in JS console returns true. Game loads without error.

“COEP + COOP. SAB unlocked. Game runs.”

Related Issues

For PCK encrypted, see PCK encrypted. For Android keystore, see keystore.

Headers set. Web runs.