Not having the log filled in by error messages.
Seems to work on Firefox, with the logs not filling up.
Actual
Logs in output-window keeps getting filled with the same error:
2025-03-27 20:40:42.365 [error] [Window] Failed to construct 'Worker': Access to the script at 'blob:https://SERVERNAME/7c4b764f-20dd-4be6-803c-73dd75b171ff' is denied by the document's Content Security Policy.: SecurityError: Failed to construct 'Worker': Access to the script at 'blob:https://SERVERNAME/7c4b764f-20dd-4be6-803c-73dd75b171ff' is denied by the document's Content Security Policy.
at nls (https://SERVERNAME/code-server/stable-e2c489dd00f163b1a8d959965b0c30c1a978a080/static/out/vs/code/browser/workbench/workbench.js:1262:13907)
at new lls (https://SERVERNAME/code-server/stable-e2c489dd00f163b1a8d959965b0c30c1a978a080/static/out/vs/code/browser/workbench/workbench.js:1262:15332)
at Iwi.create (https://SERVERNAME/code-server/stable-e2c489dd00f163b1a8d959965b0c30c1a978a080/static/out/vs/code/browser/workbench/workbench.js:1262:16079)
at new ils (https://SERVERNAME/code-server/stable-e2c489dd00f163b1a8d959965b0c30c1a978a080/static/out/vs/code/browser/workbench/workbench.js:1262:11441)
at Z6 (https://SERVERNAME/code-server/stable-e2c489dd00f163b1a8d959965b0c30c1a978a080/static/out/vs/code/browser/workbench/workbench.js:1262:16240)
at new ant (https://SERVERNAME/code-server/stable-e2c489dd00f163b1a8d959965b0c30c1a978a080/static/out/vs/code/browser/workbench/workbench.js:2552:9618)
at ont.r (https://SERVERNAME/code-server/stable-e2c489dd00f163b1a8d959965b0c30c1a978a080/static/out/vs/code/browser/workbench/workbench.js:2552:9357)
at ont.s (https://SERVERNAME/code-server/stable-e2c489dd00f163b1a8d959965b0c30c1a978a080/static/out/vs/code/browser/workbench/workbench.js:2552:9411)
at Object.provideLinks (https://SERVERNAME/code-server/stable-e2c489dd00f163b1a8d959965b0c30c1a978a080/static/out/vs/code/browser/workbench/workbench.js:2552:9227)
at https://SERVERNAME/code-server/stable-e2c489dd00f163b1a8d959965b0c30c1a978a080/static/out/vs/code/browser/workbench/workbench.js:479:18336
Logs
see attached trace.log (in notes).
code-server --verbose > trace.log
[21:07:04] [127.0.0.1][024d80ed][ExtensionHostConnection] Unknown reconnection token (never seen).
[21:07:04] [127.0.0.1][400d0ec0][ManagementConnection] Unknown reconnection token (never seen).
File not found: /usr/lib/code-server/lib/vscode/node_modules/vsda/rust/web/vsda_bg.wasm
File not found: /usr/lib/code-server/lib/vscode/node_modules/vsda/rust/web/vsda.js
Screenshot/Video
Does this bug reproduce in native VS Code?
No, this works as expected in native VS Code
Does this bug reproduce in GitHub Codespaces?
I did not test GitHub Codespaces
Are you accessing code-server over a secure context?
Thank you for the logs! Is your server adding any content security policies or is code-server embedded on a page with content security policies?
One weird thing that stands out to me is that it seems to be trying to load domain.tld/hash rather than domain.tld/code-server/hash, I wonder if we are not handling the sub-path correctly somewhere. I am not seeing the same error despite also using a sub-path, but my Chrome version is older (131) so this could be new.
Hello @code-asher. Thanks for your quick reply. I dug into the other nginx.conffiles (I don't have full control on the VM). I found the config that is causing the issue:
The content-security-policy makes the subpath rejecting the file. Is the handling of subpath under your control, or mine?
I can't get rid of that line, cybersecurity policy here. I'll talk to my IT team to see if I can make it more flexible for the code-server instance though.
That sub-path should be under our control. We do some patching to automatically add the sub-path to various parts of VS Code, and we must have missed this one.
Edit: although, it could also be a miss on VS Code's side. More investigation needed.
Glad you got it working! I would caution against hard-coding the Origin header in the reverse proxy though, at least if either of these two scenarios apply to you: #6052 (comment)
If you do remove the hard-coded Origin, you will also need proxy_set_header Host $http_host;.
Activity
fabgilson commented on Mar 27, 2025
trace.log
code-asher commented on Mar 27, 2025
Thank you for the logs! Is your server adding any content security policies or is code-server embedded on a page with content security policies?
One weird thing that stands out to me is that it seems to be trying to load domain.tld/hash rather than domain.tld/code-server/hash, I wonder if we are not handling the sub-path correctly somewhere. I am not seeing the same error despite also using a sub-path, but my Chrome version is older (131) so this could be new.
fabgilson commented on Mar 27, 2025
Hello @code-asher. Thanks for your quick reply. I dug into the other nginx.conffiles (I don't have full control on the VM). I found the config that is causing the issue:
The content-security-policy makes the subpath rejecting the file. Is the handling of subpath under your control, or mine?
I can't get rid of that line, cybersecurity policy here. I'll talk to my IT team to see if I can make it more flexible for the code-server instance though.
Thanks!
code-asher commented on Mar 28, 2025
That sub-path should be under our control. We do some patching to automatically add the sub-path to various parts of VS Code, and we must have missed this one.
Edit: although, it could also be a miss on VS Code's side. More investigation needed.
fabgilson commented on Mar 28, 2025
Cool, thanks for confirming.
nowarzz commented on Apr 9, 2025
It still occurs in 4.99.1 versions
auxtern commented on May 17, 2025
I recently tried to do something similar to what you did. I tried for hours and finally got it to work. Hopefully this will solve your problem.
From Server

With Reverse Proxy

I use nginx on docker, here is the configuration:
docker-compose.yml
nginx.conf
events { worker_connections 1024; } http { server { listen 80; location /vscode/developer/ { rewrite ^/vscode/developer/(.*)$ /$1 break; proxy_pass http://host.docker.internal:8080; proxy_redirect off; # WebSocket headers proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Forward original host and IP proxy_set_header Host 127.0.0.1:8080; # Must match the code-server port configuration. proxy_set_header Origin http://127.0.0.1:8080; # Must match the code-server port configuration. proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Add auth headers if needed proxy_set_header Cookie $http_cookie; proxy_set_header Authorization $http_authorization; # Increase timeout settings proxy_read_timeout 86400s; proxy_send_timeout 86400s; } } }Good luck friend 😄
code-asher commented on May 19, 2025
Glad you got it working! I would caution against hard-coding the Origin header in the reverse proxy though, at least if either of these two scenarios apply to you: #6052 (comment)
If you do remove the hard-coded Origin, you will also need proxy_set_header Host $http_host;.
auxtern commented on May 20, 2025
Thanks it works too.

ruanimal commented on Feb 25, 2026
text
location / { proxy_pass http://codeserver:8443; # WebSocket headers proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Forward original host and IP proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }code-asher commented on Apr 7, 2026
Closing since the problem appears to be this problem with the origin check: #6166