Skip to content

System.InvalidOperationException: Queue empty when using PSReadLine in VSCode #4779

@ukbendavies

Description

@ukbendavies

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest released version
  • Search the existing issues, especially the pinned issues.

Exception report

Last 101 Keys:

pipmo ave<Tab>dap<Tab><Backspace><Enter>
get-mo<Tab><Enter>
pppppget-modules<Enter>
get-modu<Tab><Enter>
remove-mo<Tab> dap<Tab><Enter>
ppp<DownArrow><UpArrow><UpArrow><UpArrow><Enter>
pppppppppppppppppppppppp

Exception:

System.InvalidOperationException: Queue empty.
   at System.Collections.Generic.Queue`1.ThrowForEmptyQueue()
   at System.Collections.Generic.Queue`1.Dequeue()
   at Microsoft.PowerShell.PSConsoleReadLine.ReadKey()
   at Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
   at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics, CancellationToken cancellationToken, Nullable`1 lastRunStatus)

Screenshot

Environment:

PSReadLine: 2.4.0-beta0+923a890f2e7ea10465f3a80a2bc030121a1c2f68
PowerShell: 2025.0.0
OS: Microsoft Windows 11 Enterprise 24H2 (10.0.26100)
BufferWidth: 141
BufferHeight: 16
Locale : 0809
Manufacturer : Microsoft Corporation
MUILanguages : {en-GB, en-US}

Note: The keys that follow were not repeated / stuck keys but it seems to have key repetitions?

Last 101 Keys:

pipmo avedap
get-mo
pppppget-modules
get-modu
remove-mo dap
ppp
pppppppppppppppppppppppp

Exception:

System.InvalidOperationException: Queue empty.
at System.Collections.Generic.Queue1.ThrowForEmptyQueue() at System.Collections.Generic.Queue1.Dequeue()
at Microsoft.PowerShell.PSConsoleReadLine.ReadKey()
at Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics, CancellationToken cancellationToken, Nullable`1 lastRunStatus)

Additional Context: This occurred during normal usage in VSCode. It seems to be related to command history navigation or tab completion. No custom PSReadLine configuration was applied.

Environment data

Inside VSCode terminal:
PS Version: 7.5.0
PS HostName: Visual Studio Code Host
PSReadLine Version: 2.4.0-beta0
PSReadLine EditMode: Windows
OS: 10.0.26100.1 (WinBuild.160101.0800)
BufferWidth: 195
BufferHeight: 11

Windows Terminal with Powershell 7:

PS Version: 7.5.1
PS HostName: ConsoleHost (Windows Terminal)
PSReadLine Version: 2.3.6
PSReadLine EditMode: Windows
OS: 10.0.26100.1 (WinBuild.160101.0800)
BufferWidth: 115
BufferHeight: 65

Steps to reproduce

  • Open VSCode with PowerShell terminal.
  • Run a series of commands involving pip, get-module, and remove-module.
  • Use arrow keys to navigate command history.
  • Observe crash.

Note: this seems to occur when using vscode with normal editor input, the workflow I was using on the day of the exception ran multiple pwsh instances because of pester test execution in the test extension. not sure if this was a contributing factor though.

Expected behavior

No exception, VSCode does not exhibit odd behaviors like starting a debugging session when any key on the keyboard is pressed

Actual behavior

VSCode starts running arbitrary debugging sessions (F5) and at some point the Exception occurs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs-Triage 🔍It's a new issue that core contributor team needs to triage.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions