Skip to content

CLI can get stuck on 'Cancelling' and stop accepting Enter (slash commands become unusable) #2770

@ericnewton76

Description

@ericnewton76

Describe the bug

In some failure cases (seems to correlate with server-side rate limiting / request hang), Copilot CLI becomes unusable after attempting to cancel. The UI input remains responsive (you can type and see autocomplete), but pressing Enter stops doing anything — commands like /restart and /session info cannot be executed.

After pressing Esc, the UI shows "Cancelling" indefinitely. Esc no longer interrupts, and Enter will not submit commands.

Steps to reproduce (approx)

  1. Submit a prompt that triggers a backend request.
  2. Backend appears rate limited / hung; CLI shows no useful feedback for 5+ minutes.
  3. Press Esc to cancel.
  4. Observe: status shows "Cancelling" and never completes for a long time.
  5. Try /restart + Enter or /session info + Enter.
  6. Observe: the text remains in the input line but Enter does not execute.

Eventually (8–10+ minutes later) it “releases” and starts working again, but until then there’s no way to recover.

Expected behavior

  • Cancellation should complete quickly (or time out with a clear failure state).
  • Even while a request is cancelling/hung, Enter should still work for local slash commands like /restart, /session info, and ideally a “force cancel” action.
  • If the CLI is rate-limited, show actionable feedback (retry-after / backoff) rather than appearing frozen.

Actual behavior

  • Stuck in "Cancelling".
  • Esc no longer works.
  • Input is responsive for typing/autocomplete, but Enter does not execute /restart or /session info.
  • Cannot retrieve session info to safely force-quit and resume.

Environment

  • OS: Windows
  • Trigger: appears during/after suspected rate limit or hung server connection

Additional context / suggestions

This feels like an input state machine deadlock where cancellation disables submit/Enter processing globally. Local commands should remain functional regardless of backend request state.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:input-keyboardKeyboard shortcuts, keybindings, copy/paste, clipboard, mouse, and text inputarea:modelsModel selection, availability, switching, rate limits, and model-specific behavior

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions