Scheduled tasks fail with 'useradd: cannot create directory /sessions/...' RPC error

Resolved 💬 2 comments Opened Apr 15, 2026 by id-collab Closed May 24, 2026

Summary

All scheduled tasks in Cowork Cloud are failing at sandbox provisioning — they never reach the task prompt. Error surfaces as Something went wrong in the UI with the following message:

RPC error: ensure user: useradd failed: exit status 12: useradd: cannot create directory /sessions/admiring-zealous-wright

The session directory name (e.g. admiring-zealous-wright) changes between runs, but the failure is the same — useradd cannot create the directory on the Cowork execution container.

Impact

Affects all 5 of my scheduled tasks:

  • Memory sync (daily 23:00)
  • Outreach engine (10:00 + 14:00 Mon–Fri)
  • Morning brief (daily 08:30)
  • CRM weekly report (Mondays 09:00)
  • Tenders daily digest (daily 12:00)

The scheduler itself is working (cron fires on time, runs are recorded in the Runs panel), but every execution fails before Claude can start. Consecutive failed runs for Outreach engine:

  • 2026-04-14 21:18
  • 2026-04-14 22:23
  • 2026-04-14 22:32
  • 2026-04-15 10:02
  • 2026-04-15 12:33
  • 2026-04-15 14:02
  • 2026-04-15 18:09

First observed failure: ~21:18 on 2026-04-14 (UK time). Still ongoing as of 2026-04-15 18:09.

Environment

  • Platform: macOS Darwin 25.4.0
  • Claude Code model: Opus 4.6
  • Feature: Cowork Cloud scheduled tasks (with "Keep awake" toggle enabled; though the error is server-side so local state is irrelevant)

Expected

Scheduled tasks should execute on schedule.

Actual

Every run fails at useradd stage with exit status 12 — Cowork cannot provision the per-run sandbox directory under /sessions/.

Notes

  • This is an infrastructure/RPC error, not a user prompt or config issue
  • The task SKILL.md files on disk are intact
  • Local ~/.claude/scheduled-tasks/ is empty (these are cloud tasks, not local), which led to initial confusion — the MCP scheduled-tasks server returns 0 tasks while the UI correctly shows 5. May be worth clarifying the scoping in docs / tooling.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗