Skip to content

[Bug]: Repeated Claude quota retries send failure notifications for the interactive parent pane #30067

Closed

Description

@tianlrz

What happened

Orca 1.4.218 on macOS repeatedly sent “Claude failed” notifications to a paired iOS client while a background batch script retried a rate-limited claude -p --model sonnet subprocess. The subprocess inherited the interactive Claude pane’s Orca environment; stdout/stderr were captured by its parent script.

The retry loop made 16 attempts, 15 minutes apart. All 16 child transcripts recorded a session-limit error. Fourteen distinct host-side notification records for the parent pane matched child failures within 20–42 ms. These are host records, not measured APNs delivery counts; the user observed more than ten phone alerts. The saved pane status also contained the child session ID and StopFailure instead of the interactive owner’s session.

Reproduce

  1. Run an interactive Claude session in an Orca pane with process-bearing managed hooks.
  2. From a tool/background script in that pane, launch a separate claude -p process with inherited environment.
  3. Make the child hit its usage limit and retry it periodically.
  4. Observe the parent pane being marked failed for each child attempt and receiving repeated failure notifications.

Expected

A separate headless child must not replace the live interactive owner’s session, prompt, status or native subagent permission state. Its quota failure must not publish a parent failure. Genuine failures of the owning Claude should still notify. A replacement process should be admitted once the execution host proves the old owner exited; an unverifiable process check must retain the owner.

Scope and related work

This is a focused same-provider, process-identified instance of #26020. The existing guard distinguishes agent types, but two different Claude processes pass that guard. Related broader ownership work: #26408. #26846 protects nested models but does not address these same-provider status failures.

A small fix can extend the existing process owner guard using PID, platform and process-start identity, on the execution host before hook state is folded. This report does not claim to solve older hooks or Windows hooks that omit process identity, or every nested-provider case in #26020.

The diagnosis was read-only: no running task, retry script, hook configuration or notification preference was changed. Private transcripts, prompts and pane identifiers are omitted.

Activity

  1. AmethystLiang commented on Oct 18, 2026

    @AmethystLiang
    Contributor

    looking into it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions