all my containers are based on alpine docker images, which i’m also using as devcontainer.
Today i did an cursor update and devcontainer functionality stopped working. Error message is:
2026-04-28 14:22:40.598 [info] Server install command exit code: 1
2026-04-28 14:22:40.598 [error] Failed to install remote server in container: Error: Couldn’t install Cursor Server, install script returned non-zero exit status
2026-04-28 14:22:40.599 [error] Error resolving dev container authority Couldn’t install Cursor Server, install script returned non-zero exit status
2026-04-28 14:22:40.599 [info] [server install] stderr: base64: unrecognized option: D
Hey, this is a known bug on our side. The install script for the remote Cursor Server uses base64 -D, which is a macOS-only flag, so it won’t work on Linux or BusyBox. It’s on our radar and the fix is in the backlog, but we don’t have a clear ETA yet.
While it’s being fixed, the only reliable workaround is to roll back to a previous Cursor version where devcontainers still worked fine for you. You can download older builds here: Cursor · Download
I hear you, that’s frustrating. A rollback is a bad Plan B, and it sucks it didn’t work. Most likely the install script gets updated on the server side when you connect, so downgrading the client doesn’t help.
While the fix is still in the backlog, here are a couple of Dockerfile-side workarounds.
Option 1: switch the base image
If Alpine isn’t critical, switch to node:22-slim or python:3.12-slim or any Debian-based image. The image alone won’t fix it since GNU base64 on Linux also doesn’t support -D, but together with Option 2 it’s cleaner.
It’s a dirty hack, but it should unpack the install script correctly until the IDE team removes -D from the fallback path.
If this doesn’t work for you, let me know and we’ll dig deeper. We’re tracking the issue on our side, and I’ll post an update here if there’s progress on the fix.
Hey @Tostar, confirmed. The bug is still in the backlog, and there’s no ETA for a fix yet.
While we’re waiting, there’s a Dockerfile workaround earlier in the thread, post #8:Cursor server stopped working because of base64 option -D - #8 by deanrie. It wraps base64 with a shell script that maps -D to -d. It works on Alpine and Debian/Ubuntu. It’s a bit of a dirty hack, but it lets devcontainers start up until the IDE team removes -D from the fallback path.
If you apply the workaround and it still doesn’t work, please share the logs from [server install] and we’ll take a look.
Great find, and thanks for coming back with a full fix. Good call on flock -w, BusyBox flock really doesn’t support it, so using util-linux or flock makes sense and closes the second gap. I’ll add this flock detail to what we already track around base64 so the fix covers both at once.
If you hit the same thing on Alpine, the workaround from post #11 has two parts:
base64: just running apk add coreutils isn’t enough. The install script calls base64 -D, and the -D flag isn’t supported by either BusyBox or GNU base64, they only support -d. You need a small wrapper script that intercepts -D and swaps it to -d (full version in post #11).
flock: this one’s easier. apk add --no-cache flock (or util-linux) installs a version that supports -w, so the flock-based lock issue goes away.
No ETA for our side fix yet, but I’ll post here once there’s an update. I’ll pin your post as the solution in the thread.
Thanks again for reporting this! The issue should now be resolved in the latest version of the SSH extension (v1.1.12). If you still encounter an issue after updating, please raise a new thread.