claude.ai web slows down as stale scheduled-routine run cards accumulate (showing 137 'running' tasks)

Open 💬 1 comment Opened Jun 9, 2026 by geekspence

Summary

The claude.ai web Tasks/Background view shows 137 "running" tasks, but there are only 5 actual scheduled routines configured. The 137 appear to be stale/orphaned run instances that never get marked complete and never get garbage-collected. The web UI has become noticeably slow, and I suspect rendering/tracking this large pile of phantom "running" cards is the cause.

Environment

  • Surface: claude.ai web (Claude Code web)
  • Also using: Claude Code CLI (darwin, against a private repo)
  • Scheduled routines created via the remote-trigger / /schedule API (created_via: http_api)

What I expected

  • The Tasks view reflects actual in-flight work: ~0 running when nothing is executing, plus the 5 routine definitions.
  • Completed scheduled-routine runs close their card (or move to a history/collapsed state) rather than lingering as "running" forever.

What actually happens

  • 137 cards show as "running."
  • There are only 5 real routines (verified via the remote-trigger list API; has_more: false):

| Routine | Schedule |
|---|---|
| codebase-overview-daily-update | daily 08:00 UTC |
| nightly-ui-audit | daily 09:00 UTC |
| nightly-security-audit | daily 09:30 UTC |
| weekly deferral audit | Sundays 08:00 UTC |
| docs-drift-fix | Mondays 10:00 UTC |

  • All 5 routines have persist_session: false. They've been firing daily/weekly for several weeks. The count of phantom "running" cards is roughly consistent with "every routine firing, every day, never closing its card" plus orphaned background-agent cards from past sessions.

Suspected cause

  • Scheduled-routine runs (especially persist_session: false) and/or background agent tasks spawned from a session do not transition out of "running" state when they finish or when the originating session is cleared (/clear). They accumulate unbounded and the web client renders/tracks all of them, degrading performance over time.

Impact

  • claude.ai web is slow.
  • No user-facing way to clear the stale cards. From the Claude Code CLI session there's also no tool to enumerate or clear individual remote run instances — TaskList/CronList are empty, and the remote-trigger API only manages the 5 routine definitions (list/get/create/update/run), not their run history. So the cards can't be cleaned up from either side.

Suggested fixes

  1. Reap/auto-close run cards when a run completes (or errors/times out), especially for persist_session: false routines.
  2. Garbage-collect orphaned "running" cards whose originating session has ended (e.g. after /clear).
  3. Provide a "clear completed/stale tasks" affordance in the web Tasks view.
  4. Cap or paginate the Tasks list so a large backlog doesn't degrade web performance.

Notes

The 5 routine definitions themselves are healthy and intentional — the bug is the unbounded accumulation of stale run cards, not the routines.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗