# PSReadLine crashes with ArgumentOutOfRangeException on rapid Backspace editing
## Environment
- PowerShell: 7.x (console)
- PSReadLine version: 2.4.5
- Terminal: Windows Console host, BufferHeight = 29
## Bug description
Typing commands and rapidly pressing Backspace caused PSReadLine to crash with
`ArgumentOutOfRangeException` thrown from `SetCursorPosition`:
Exception:
System.Management.Automation.PSArgumentOutOfRangeException:
Cannot process argument transformation on parameter 'top'.
Parameter name: 'top' cannot be greater than '29'
## Reproduction steps
1. Open a PowerShell console with a short window (BufferHeight ~29).
2. Type `vine update`, then `vine inventory`.
3. Press Backspace ~13 times quickly to erase, retype `vine inventory`, press Enter.
4. Press `r` — crash occurs.
## Root cause analysis
- The reported cursor line index is `29`, which is out of the valid range `0..28`
when BufferHeight == 29.
- The crash happened during input-line redraw after a burst of Backspace keys,
suggesting PSReadLine's cursor position calculation went out of bounds
(off-by-one at the bottom edge of the buffer).
## Notes
- This is not caused by the command itself — any command can trigger it when
the buffer is short and Backspace is pressed rapidly.
- Suggested fix: clamp the cursor `top` coordinate to `[0, BufferHeight-1]`
before calling `SetCursorPosition`.
## Reporter context
Found while testing **Vine** (https://codeberg.org/Milktown/vine), a
text-instruction-based package manager for Windows. It has nothing to do with
the crash, just FYI — Vine is a neat open-source project worth a look. :)
PS Version: 7.6.3
PS HostName: ConsoleHost (Windows Terminal)
PSReadLine Version: 2.4.5
PSReadLine EditMode: Windows
OS: 10.0.19038.1 (WinBuild.160101.0800)
BufferWidth: 120
BufferHeight: 29
Prerequisites
Exception report
Screenshot
Environment data
Steps to reproduce
Steps to reproduce
Expected behavior
Expected behavior
Actual behavior
Actual behavior