anthropics / anthropics/claude-code

Desktop: ghost scheduled tasks fire every minute but are absent from UI, MCP list, and on-disk registry

Abierto
#94,410 0 comentarios 0 reacciones 0 asignados Ver en GitHub
area:desktop area:routines bug has repro platform:macos
Lenguaje dominante
Python
Estrellas
145k
Forks
23.1k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

## Summary

Two scheduled tasks that no longer exist anywhere on disk are still being dispatched by the Desktop app's `ScheduledTasks` manager **once per minute**, logging a warning/error each time. They cannot be removed: they do not appear in the Routines UI, in the `scheduled-tasks` MCP listing, or in the on-disk registry, and they survive a full app restart.

## Environment

- Claude Desktop: 1.52386.6
- Claude Code (bundled): 2.1.270
- macOS 26.6.2 (Apple Silicon)

## Symptoms

`~/Library/Logs/Claude/main.log` receives these lines every 60 seconds:

```
[warn] [ScheduledTasks] Skipping scheduled task ohayo-morning-report: task file not found at /Users//Claude/Scheduled/ohayo-morning-report/SKILL.md
[error] [ScheduledTasks] Failed to read task file for mercari-daily-sales-check: path not symlink-free before open { code: 'ENOENT' }
```

Volume, counted from the log:

| Date | Lines |
|---|---|
| 2026-09-09 | 708 (starts 12:12) |
| 2026-09-10 | 1444 |
| 2026-09-11 | 1442 |
| 2026-09-12 | 1440 |
| 2026-09-13 | 1444 |
| 2026-09-14 | 1443 |

~8,400 lines over six days, exactly one per minute.

The referenced path is a **legacy location**: `/Users//Claude/Scheduled/`. That directory does not exist — `~/Claude/` itself does not exist. Working tasks live under `~/.claude/scheduled-tasks/`.

## What I verified

1. `~/Claude/Scheduled/` — does not exist.
2. `~/.claude/scheduled-tasks/` — no directory for either task id.
3. `scheduled-tasks` MCP `list_scheduled_tasks` — returns 33 tasks; neither ghost is among them.
4. `scheduled-tasks` MCP `delete_scheduled_task` with the exact id — rejected: `Scheduled task "ohayo-morning-report" not found.`
5. Routines UI — searching `ohayo`, `おはよう`, and `メルカリ` each returns "no matching routines". Other routines (including paused ones) list normally.
6. `~/Library/Application Support/Claude/claude-code-sessions///scheduled-tasks.json` — exists (28 KB) and parses, but `grep` for either task id returns **0 matches**.
7. IndexedDB, Local Storage, Session Storage, and Partitions under `~/Library/Application Support/Claude/` — 0 matches.
8. `~/.claude.json` — the only match is an unrelated `skillUsage` counter.
9. **Restarting the app does not clear it.** The main process started at 08:33:48; the same warning was emitted at 08:38:54 and every minute after.

So the dispatcher is scheduling from a source that is not any of the on-disk registries, and that source is re-read after a restart.

## Expected

Either the stale registration is dropped when its task file is missing, or it is exposed somewhere the user can delete it (UI, or `delete_scheduled_task` accepting it).

## Actual

It fires forever, is invisible, and there is no supported way to remove it.

## Impact

Low but non-zero: log noise only. Log rotation caps disk use. No effect on the 33 working routines.

## Possible trigger

The first occurrence (2026-09-09 12:12) coincides with the last modification time of `~/Library/Application Support/Claude/` (12:11), which suggests an app update around that moment left the old-path registrations behind.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.