Skip to content

[bug] Stop swallowing runtime errors across voice, coder, and worker paths #291

Description

@serge-ivo

Finding

VCQA scored error-handling as 59/D with 211 findings, including 64 empty catch blocks and multiple swallowed promises/floating promises.

Examples from the report:

  • packages/sdk/src/voice/use-voice.ts: multiple empty catches and swallowed promises in the shared voice stack.
  • agents/coder/web/src/CodingTab.tsx: repeated empty catches around coder UI/runtime actions.
  • workers/api/src/agent-think.ts: empty catches in agent execution paths.
  • workers/api/src/index.ts and workers/api/src/lib/connectors/client.ts: floating promises.

Impact

This is not just score noise. Silent failures in voice, coder runtime, and agent execution make the product look idle or successful when work actually failed. It also makes production debugging harder because the error never reaches the existing event/error-log surfaces.

Acceptance criteria

  • Empty catches are replaced with explicit benign comments only where failure is truly ignorable, or with structured logging/user-visible state where it is not.
  • Floating promises are either awaited, returned, or intentionally detached with a named helper/comment and error handling.
  • Voice/coder paths surface recoverable user-facing errors instead of silent no-ops.
  • Add focused tests for at least one voice failure path, one coder UI failure path, and one worker/tool execution failure path.
  • VCQA error-handling materially improves from 59/D.

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