Where does the bug appear (feature/product)?
Cursor SDK
Describe the Bug
Where does the bug appear: Cursor SDK (@cursor/sdk), not the IDE chat.
On 2026-10-02, local Agent.create → send → wait() runs with Grok 4.6, effort: high, fast: false fail in two ways while status.cursor.com is All Systems Operational and the IDE chat on the same account works.
Linux VPS (Node 22, sequential isolated agents, tools: , empty temp cwd, new agent per call):
Agent turn stopped after repeated resume attempts made no progress
Connection failed repeatedly
Same adapter, same model, previous day (2026-10-01) finished a 19-call batch around 08:41. Bumping @cursor/sdk 1.0.30 → 1.0.35 did not stop the drops.
Windows, same adapter, one-line prompt {“ok”:true}: sandbox fallback, then fail after 145s with
Cursor non ha risposto: [internal] unable to open database file.
run.cancel() after 8s does resolve wait() with status: cancelled.
Expected: a no-tool isolated agent returns text (or a structured error with run.id) in the usual couple of minutes, including for a one-line JSON prompt. Status green / IDE chat healthy should not hide a broken SDK stream.
This is not a huge-payload / long-lived conversation case: each run is a fresh agent, no tools, tiny prompt. Happy to add agent.agentId / run.id from the next failure.
Steps to Reproduce
- Node 22,
@cursor/sdk1.0.35 (also seen on 1.0.30). CURSOR_API_KEY of a Pro account that can select Grok 4.6. - Run this as a one-shot. Fresh agent, empty temp cwd, tools: , Grok 4.6, effort high, fast false:
import { mkdtemp } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { Agent, Cursor } from "@cursor/sdk";
const apiKey = process.env.CURSOR_API_KEY!;
const models = await Cursor.models.list({ apiKey });
const grok = models.find((m) => /grok-4\.6/i.test(m.id) || /grok-4\.6/i.test(m.name ?? ""));
if (!grok) throw new Error("grok-4.6 not in catalog");
const cwd = await mkdtemp(join(tmpdir(), "probe-"));
const agent = await Agent.create({
apiKey,
model: {
id: grok.id,
params: [
{ id: "effort", value: "high" },
{ id: "fast", value: "false" },
],
},
mode: "agent",
tools: [],
local: { cwd, settingSources: [], sandboxOptions: { enabled: false } },
});
const run = await agent.send('Reply with JSON only: {"ok":true}');
const result = await run.wait();
console.log(result.status, result.error, result.result);
await agent[Symbol.asyncDispose]();
Windows: after the usual sandbox-not-supported fallback (if you leave sandbox on), wait() fails after ~145s with [internal] unable to open database file. A one-line JSON prompt should not take that long or die on SQLite.
Linux VPS, same options, new agent per call, sequential: wait() ends with Agent turn stopped after repeated resume attempts made no progress or Connection failed repeatedly. Same machine + adapter on 2026-10-01 finished a 19-call batch around 08:41. Status.cursor.com was green; IDE chat on the same account worked.
Bumping @cursor/sdk 1.0.30 → 1.0.35 did not stop the Linux drops.
### Operating System
Linux
### Version Information
cursor sdk 1.0.35
### Does this stop you from using Cursor
No - Cursor works, but with this issue