Terrible cloud agent experience

I spend the whole day trying cloud agent to use my Dockerfile. Here is the list of issues I have experienced so far

  1. Dockerfile is not provisioned. - no clear documentation or guidance for this troubleshooting. No matter how I played with context or dockerfile vars - nothing works. It is not provisioning.
  2. No way to delete old environment to restart everything from scratch
  3. I noticed it is always using old snapshot - and there is not way to omit that ( or the docs just Dont say how to do it)
  4. some resources say I can start from new branch - but when I try (from IDE)- the process just hanges, nothing happens. From webUI there are no way to start an env provisioning from another branch (or I cannot find it anywhere
  5. no logs for docker builds (even if they were I would not notice)
  6. No ability to search/observe the provision logs / any logs
  7. after 10th environment.json update - cloud env stopped to pick up file changes (potentially GitHub webhook issue, but cannot be sure)

THis is my first experiece with cursor cloud agents. Despite everyone saying it is so great - my experience so far is not.. I just wanted it to pick up my dockerfile
.cursor/Dockerfile
FROM node:24-bookworm-slim

RUN apt-get update \

&& apt-get install -y --no-install-recommends git ca-certificates \

&& rm -rf /var/lib/apt/lists/* \

&& corepack enable

RUN node --version && git --version && pnpm --version

I would appreciate for any help

Hey @Dmytro_Afonin

Cloud Agents need a committed .cursor/environment.json that points at it.


{
  "build": { "dockerfile": "Dockerfile", "context": ".." },
  "install": "pnpm install"
}

Delete the old environment from: Cloud Agents

After that start a fresh agent.

Hey, thanks for the detailed write-up. Most of it comes down to one root cause, so let’s go step by step, plus a couple clarifications to the reply above.

Main point (items 1, 3, 7). The environment resolve order is that .cursor/environment.json in the repo has the highest priority, higher than Personal or Team from the wizard. So it uses your repo config. The real issue is different: if you set up the environment via the Set up agent wizard, it may have written a snapshot field into environment.json with an ID of a prebuilt snapshot. When a snapshot ID is present, the agent starts from that snapshot and skips building the Dockerfile. That’s why you kept seeing the old environment instead of your image.

What to do:

  1. Open .cursor/environment.json and remove the snapshot ID if it’s there. Keep only the build config that points to your Dockerfile.
  2. Double check the format against the current schema. It shows how to specify the Dockerfile correctly: https://www.cursor.com/schemas/environment.schema.json. Setup docs: Cloud Environment Setup | Cursor Docs.
  3. Start a regular cloud agent on this branch. Without a snapshot ID it should build the Dockerfile.

On item 7: changes to environment.json or setup.sh should invalidate the snapshot and trigger a full rebuild. There’s a known limitation where the snapshot doesn’t always invalidate correctly, more often when the git state is broken in the base layer. I can’t share an ETA for a fix. As a force workaround, see the note about creating a new environment below.

Item 2 (deleting an environment). Clarification to the reply above: the Cloud Agents dashboard currently has no Delete button for environments. It’s a known gap, it’s in the backlog, and there’s no ETA. A working workaround is to create a new environment on the same repo with a different name. That gives you a clean snapshot, and you can just stop using the old one.

Item 4 (starting from another branch). In the web launcher at https://cursor.com/agents you can pick a branch. Starting from there is more reliable than starting from the IDE.

Items 5, 6 (build logs and searching logs). Visibility for setup and build logs in the UI is still limited. That’s a known limitation, no ETA.

Your Dockerfile installs git, which is correct, without it cloning inside the container fails. Try removing the snapshot ID and running a clean run, then let me know if the image comes up.