Skip to content

[BUG]: tool events get dropped when the client is slow #233

Description

@gjanco

spawn_tool_event_forwarder bridges the tool-call broadcast channel (cap 32) into the orchestration event mpsc (cap 100) with a plain send().await, and that send sits outside the cancellation select arm (orchestrator.rs:325-339 as of 2026-07-17).

When the downstream channel is full (the #231 slow-client case is the obvious way), the forwarder cannot observe cancellation while blocked. Meanwhile the upstream broadcast ages out and silently drops tool events as RecvError::Lagged.

Activity

  1. Shearerbeard commented on Jul 17, 2026

    @Shearerbeard
    Collaborator

    Vetted 2026-07-17 (this ticket had no body, so the description now records the mechanism). spawn_tool_event_forwarder does a blocking send().await into the cap-100 orchestration channel, outside the cancellation select arm (orchestrator.rs:325-339). While blocked, the forwarder cannot observe cancellation. Meanwhile the upstream cap-32 broadcast ages out and silently drops tool events as Lagged.

  2. changed the title [-]Broadcast forwarder blocks on mpsc send[/-] [+][BUG]: tool events get dropped when the client is slow[/+] on Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions