Dev Container Connection Fails: Cursor Server Download URL is Missing Architecture (x64)

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

The Dev Container connection fails over remote docker because the automatic installation of the Cursor Server uses an incorrect and incomplete download URL, resulting in a 403 Forbidden error.

The URL generation process is failing to include the detected machine architecture (x64), likely due to an issue parsing the operating system details inside the container.

Evidence from the Log:

  • Failed detection of machine architecture:
[uname -m]: Command completed with exit code 0
  • Failed detection of OS details (/etc/os-release is empty):
[install-server] os-release: 
  • Malformed download URL (Missing the x64 path component and filename suffix):
curl: (22) The requested URL returned error: 403
... 'https://downloads.cursor.com/production/9675251a06b1314d50ff34b0cbe5109b78f848cd/linux//cursor-reh-linux-.tar.gz'
  • Subsequent file copy failure because the download failed:
[error] Failed to copy file to container: Error: [docker copy file] Command failed with exit code 1

Steps to Reproduce

Execute @command:remote-containers.attachToRunningContainer

2025-10-17 20:18:54.470 [info] No remote exec server found for authority: dev-container+7b2273657474696e6754797065223a22636f6e7461696e6572222c22636f6e7461696e65724964223a22666234356133623462343635227d; using local
2025-10-17 20:18:54.470 [info] Resolving dev container authority 'dev-container+7b2273657474696e6754797065223a22636f6e7461696e6572222c22636f6e7461696e65724964223a22666234356133623462343635227d' (attempt #1) container '{"settingType":"container","containerId":"fb45a3b4b465"}'
2025-10-17 20:18:54.470 [info] Starting Dev Containers dev-container+7b2273657474696e6754797065223a22636f6e7461696e6572222c22636f6e7461696e65724964223a22666234356133623462343635227d
2025-10-17 20:18:54.471 [info] Spawned process 7368: 'docker' 'info'
2025-10-17 20:18:54.471 [info] [docker info]: Running command: docker
2025-10-17 20:18:54.860 [info] [docker info]: Command completed with exit code 0
2025-10-17 20:18:54.860 [info] docker version: Client:
 Version:    28.4.0
 Context:    docker-tower
 Debug Mode: false

Server:
 Containers: 16
  Running: 9
  Paused: 0
  Stopped: 7
 Images: 49
 Server Version: 28.4.0
 Storage Driver: overlayfs
  driver-type: io.containerd.snapshotter.v1
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 CDI spec directories:
  /etc/cdi
  /var/run/cdi
 Discovered Devices:
  cdi: docker.com/gpu=webgpu
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 nvidia runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 05044ec0a9a75232cad458027ca83437aae3f4da
 runc version: v1.2.5-0-g59923ef
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.6.87.1-microsoft-standard-WSL2
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 10
 Total Memory: 35.24GiB
 Name: docker-desktop
 ID: 1ada170d-fcb9-4e17-be8b-2be6a4d645d9
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Labels:
  com.docker.desktop.address=unix:///var/run/docker-cli.sock
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  ::1/128
  127.0.0.0/8
 Live Restore Enabled: false
2025-10-17 20:18:54.869 [info] Inspecting docker container fb45a3b4b465 (fallback name: teamculture-frontend_devcontainer-tc-frontend-1)
2025-10-17 20:18:54.869 [info] Spawned process 11116: 'docker' 'inspect' 'fb45a3b4b465'
2025-10-17 20:18:54.870 [info] [docker inspect]: Running command: docker
2025-10-17 20:18:55.024 [info] [docker inspect]: Command completed with exit code 0
2025-10-17 20:18:55.032 [info] Getting config for image vsc-teamculture-frontend-ef84a3fff9a897c4afc8b0e57f7751761761effd3247a8141bb54f01a11b721f-uid from vscode-userdata:/c%3A/Users/cloud/AppData/Roaming/Cursor/User/globalStorage/anysphere.remote-containers/imageConfigs/vsc-teamculture-frontend-ef84a3fff9a897c4afc8b0e57f7751761761effd3247a8141bb54f01a11b721f-uid.json
2025-10-17 20:18:55.037 [info] No container configuration file found for image vscode-userdata:/c%3A/Users/cloud/AppData/Roaming/Cursor/User/globalStorage/anysphere.remote-containers/imageConfigs/vsc-teamculture-frontend-ef84a3fff9a897c4afc8b0e57f7751761761effd3247a8141bb54f01a11b721f-uid.json NĂŁo Ă© possĂ­vel ler o arquivo 'vscode-userdata:/c:/Users/cloud/AppData/Roaming/Cursor/User/globalStorage/anysphere.remote-containers/imageConfigs/vsc-teamculture-frontend-ef84a3fff9a897c4afc8b0e57f7751761761effd3247a8141bb54f01a11b721f-uid.json' (Error: NĂŁo Ă© possĂ­vel resolver o arquivo inexistente 'vscode-userdata:/c:/Users/cloud/AppData/Roaming/Cursor/User/globalStorage/anysphere.remote-containers/imageConfigs/vsc-teamculture-frontend-ef84a3fff9a897c4afc8b0e57f7751761761effd3247a8141bb54f01a11b721f-uid.json')
2025-10-17 20:18:55.040 [info] Getting config for container teamculture-frontend_devcontainer-tc-frontend-1 from vscode-userdata:/c%3A/Users/cloud/AppData/Roaming/Cursor/User/globalStorage/anysphere.remote-containers/nameConfigs/teamculture-frontend_devcontainer-tc-frontend-1.json
2025-10-17 20:18:55.042 [info] No container configuration file found for container teamculture-frontend_devcontainer-tc-frontend-1 NĂŁo Ă© possĂ­vel ler o arquivo 'vscode-userdata:/c:/Users/cloud/AppData/Roaming/Cursor/User/globalStorage/anysphere.remote-containers/nameConfigs/teamculture-frontend_devcontainer-tc-frontend-1.json' (Error: NĂŁo Ă© possĂ­vel resolver o arquivo inexistente 'vscode-userdata:/c:/Users/cloud/AppData/Roaming/Cursor/User/globalStorage/anysphere.remote-containers/nameConfigs/teamculture-frontend_devcontainer-tc-frontend-1.json')
2025-10-17 20:18:55.042 [info] Returning config: {}
2025-10-17 20:18:55.042 [info] Found attached container configuration: {}
2025-10-17 20:18:55.043 [info] Installing remote server in container...
2025-10-17 20:18:55.043 [info] Reading .gitconfig from C:\Users\cloud\.gitconfig
2025-10-17 20:18:55.044 [info] Stat: {
  "type": 1,
  "size": 2052,
  "ctime": 1757975711549.934,
  "mtime": 1713454130752.1577
}
2025-10-17 20:18:55.045 [info] Reading known hosts from C:\Users\cloud\.ssh\known_hosts
2025-10-17 20:18:55.046 [info] Stat: {
  "type": 1,
  "size": 2633,
  "ctime": 1748944257420.3765,
  "mtime": 1748944257420.3765
}
2025-10-17 20:18:55.047 [info] Final extension list: 
2025-10-17 20:18:55.054 [info] Install options: {
  "id": "21e001e9f609759c31caf7cd",
  "commit": "9675251a06b1314d50ff34b0cbe5109b78f848c0",
  "line": "production",
  "extensionIds": [],
  "envVariables": [],
  "serverApplicationName": "cursor-server",
  "forceReinstall": false,
  "killRunningServers": false,
  "realCommit": "9675251a06b1314d50ff34b0cbe5109b78f848cd",
  "serverDataFolderName": ".cursor-server",
  "cursorVersion": "1.7.52",
  "spin": false,
  "settings": {},
}
2025-10-17 20:18:55.054 [info] Spawned process 10904: 'docker' 'exec' '-u' 'developer' '-i' 'fb45a3b4b4659a8cb9c53f24d93885f7c18d02ba7eced6865ff961f0e29ac532' 'bash' '-c' 'cat | (base64 -d 2>/dev/null || base64 -D || true) | bash'
2025-10-17 20:18:55.055 [info] Installing server...
2025-10-17 20:18:55.373 [info] [server install]: exit
2025-10-17 20:18:55.373 [info] Finished installing remote server in container. Parsing output...
2025-10-17 20:18:55.373 [info] Result map: undefined
2025-10-17 20:18:55.373 [error] Failed to install remote server in container: Error: Failed to install the Cursor Server. Please check the logs for more details.
2025-10-17 20:18:55.380 [info] Downloading cursor server locally and copying into container
2025-10-17 20:18:55.381 [info] Spawned process 10484: 'docker' 'exec' '-u' 'developer' 'fb45a3b4b4659a8cb9c53f24d93885f7c18d02ba7eced6865ff961f0e29ac532' 'uname' '-m'
2025-10-17 20:18:55.381 [info] [uname -m]: Running command: docker
2025-10-17 20:18:55.726 [info] [uname -m]: Command completed with exit code 0
2025-10-17 20:18:55.734 [info] Spawned process 10736: 'docker' 'exec' '-u' 'developer' 'fb45a3b4b4659a8cb9c53f24d93885f7c18d02ba7eced6865ff961f0e29ac532' 'cat' '/etc/os-release'
2025-10-17 20:18:55.734 [info] [cat /etc/os-release]: Running command: docker
2025-10-17 20:18:55.994 [info] [cat /etc/os-release]: Command completed with exit code 0
2025-10-17 20:18:55.995 [info] [install-server] os-release: 
2025-10-17 20:18:56.352 [info] Spawned process 6128: 'curl' '--retry' '3' '--fail' '--connect-timeout' '10' '--location' '--show-error' '--silent' '--output' 'C:\Users\cloud\AppData\Local\Temp\cursor-server-e3d44178-dc15-41fa-a0d1-c378d26103ee.tar.gz' 'https://downloads.cursor.com/production/9675251a06b1314d50ff34b0cbe5109b78f848cd/linux//cursor-reh-linux-.tar.gz'
2025-10-17 20:18:57.104 [info] [downloadFile][stderr]: curl: (22) The requested URL returned error: 403
2025-10-17 20:18:57.119 [info] Downloaded server onto intermediate server at C:\Users\cloud\AppData\Local\Temp\cursor-server-e3d44178-dc15-41fa-a0d1-c378d26103ee.tar.gz
2025-10-17 20:18:57.119 [info] Copying file from C:\Users\cloud\AppData\Local\Temp\cursor-server-e3d44178-dc15-41fa-a0d1-c378d26103ee.tar.gz to container fb45a3b4b4659a8cb9c53f24d93885f7c18d02ba7eced6865ff961f0e29ac532:/tmp/cursor-server-15c97d37-4688-4bc1-acf5-63ab11d55601.tar.gz
2025-10-17 20:18:57.119 [info] Spawned process 8276: 'C:\Users\cloud\AppData\Local\Programs\cursor\Cursor.exe' '-e' 'const fs = require('fs');
            const { spawn } = require('child_process');

            const sourceFile = "C:\\Users\\cloud\\AppData\\Local\\Temp\\cursor-server-e3d44178-dc15-41fa-a0d1-c378d26103ee.tar.gz";
            const dockerPath = "docker";
            const containerId = "fb45a3b4b4659a8cb9c53f24d93885f7c18d02ba7eced6865ff961f0e29ac532";
            const destinationPath = "/tmp/cursor-server-15c97d37-4688-4bc1-acf5-63ab11d55601.tar.gz";
            const remoteUser = "developer";

            // Build docker exec command
            const dockerArgs = ['exec'];
            if (remoteUser) {
                dockerArgs.push('-u', remoteUser);
            }
            dockerArgs.push('-i', containerId, '/bin/sh', '-c', `cat > "${destinationPath}"`);

            // Set up environment
            const env = { ...process.env };
            
            

            // Spawn docker exec process
            const dockerProcess = spawn(dockerPath, dockerArgs, { env });

            // Handle errors
            dockerProcess.on('error', (err) => {
                console.error('Failed to start docker exec:', err);
                process.exit(1);
            });

            dockerProcess.on('exit', (code) => {
                if (code !== 0) {
                    console.error('Docker exec failed with exit code:', code);
                    process.exit(code || 1);
                }
                process.exit(0);
            });

            // Pipe file content to docker exec
            const readStream = fs.createReadStream(sourceFile);
            readStream.on('error', (err) => {
                console.error('Failed to read source file:', err);
                process.exit(1);
            });

            readStream.pipe(dockerProcess.stdin);'
2025-10-17 20:18:57.231 [info] [docker copy file][stderr]: Failed to read source file: [Error: ENOENT: no such file or directory, open 'C:\Users\cloud\AppData\Local\Temp\cursor-server-e3d44178-dc15-41fa-a0d1-c378d26103ee.tar.gz'] {
2025-10-17 20:18:57.231 [info] [docker copy file][stderr]: errno: -4058,
2025-10-17 20:18:57.232 [info] [docker copy file][stderr]: code: 'ENOENT',
2025-10-17 20:18:57.232 [info] [docker copy file][stderr]: syscall: 'open',
2025-10-17 20:18:57.232 [info] [docker copy file][stderr]: path: 'C:\\Users\\cloud\\AppData\\Local\\Temp\\cursor-server-e3d44178-dc15-41fa-a0d1-c378d26103ee.tar.gz'
2025-10-17 20:18:57.232 [info] [docker copy file][stderr]: }
2025-10-17 20:18:57.244 [error] Failed to copy file to container: Error: [docker copy file] Command failed with exit code 1
2025-10-17 20:18:57.245 [error] Failed to install remote server in container: Error: [docker copy file] Command failed with exit code 1
2025-10-17 20:18:57.246 [error] Error resolving dev container authority [docker copy file] Command failed with exit code 1

Operating System

Windows 10/11

Current Cursor Version (Menu → About Cursor → Copy)

VersĂŁo: 1.7.52 (system setup)
Confirmar: 1.99.3
Data: 9675251a06b1314d50ff34b0cbe5109b78f848c0
Electron: 2025-10-17T01:41:03.967Z
ElectronBuildId: 34.5.8
Chromium: undefined
Node.js: 132.0.6834.210
V8: 20.19.1
SO: 13.2.152.41-electron.0

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the report. It looks like the issue is how Cursor detects the container architecture during remote server installation.

The logs show that both uname -m and /etc/os-release in your container return empty values, which makes the download URL malformed (the x64 architecture part is missing).

A couple of questions to diagnose:

  • What’s the base image for your dev container?
  • If you run docker exec fb45a3b4b465 uname -m and docker exec fb45a3b4b465 cat /etc/os-release, what do they output?

Workaround: you can manually install the Cursor server inside the container before connecting:

docker exec -u developer fb45a3b4b465 sh -c 'mkdir -p ~/.cursor-server/bin/9675251a06b1314d50ff34b0cbe5109b78f848cd && cd $_ && wget https://downloads.cursor.com/production/9675251a06b1314d50ff34b0cbe5109b78f848cd/linux/x64/cursor-reh-linux-x64.tar.gz && tar xzf *.tar.gz --strip-components=1'

I’ll pass this to the team. Thanks for the detailed info!

Hello, Deanrie, thank you for your response.

I had to open this bug report, but I searched beforehand and the closest match would be this other topic: Container connection fails due to incorrect configuration of Cursor-Server download URL

What’s the base image for your dev container? I use the debian:bookworm-slim image.

docker exec fb45a3b4b465 uname -m
x86_64
docker exec fb45a3b4b465 cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

I need to point out that my environment is a host machine and a guest virtual machine (VMware), both running Windows.

On the host machine, I open the cursor and am able to perform the “Dev Container: Rebuild Container” action and access the environment.

However, on the guest machine, when I try to connect to the same environment via the network, it fails, and this does not happen when using vscode. This is the only thing preventing me from migrating completely to the cursor.

1 Like