Error: The scope number '7' exceeds the number of active scopes. Parameter name: ScopeID
See original GitHub issueSystem Details
### VSCode version: 1.34.0-insider 56f1b4795fed05677eb82a21dac4fc1ab62d747b
x64
### VSCode extensions:
ms-vscode.powershell@1.12.0
ms-vscode.powershell-preview@2.0.1
ritwickdey.LiveServer@5.5.1
### PSES version: 2.0.0.0
### PowerShell version:
Name Value
---- -----
PSVersion 5.1.14409.1018
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14409.1018
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Issue Description
Sometimes I receive the following error:
[-] should be green 15.49s ValidationMetadataException: The argument is null or empty. Provide an argument that is not null or empty, and then try the command again. ParameterBindingValidationException: Cannot validate argument on parameter ‘Message’. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again. at <ScriptBlock>, S:\Test\Script.ps1: line 5
Script.ps1
$Error.Clear()
if ($Error) {
$Error.ForEach( {
Write-EventLog @EventErrorParams -Message $_.Exception.Message
})
}
Script.Tests.ps1
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
$Error.Clear()
Describe $sut {
Mock Write-EventLog
It 'should be green' {
."$here\$sut"
$Error | Should -BeNullOrEmpty
}
In $TestDrive {
Describe 'Test' {
It 'should be green' {
."$here\$sut"
$Error | Should -BeNullOrEmpty
}
}
}
}
This does not always happen and it took me a long time to figure out that this only happens in VS Code
and never in the PowerShell ISE
. To narrow it further down the behavior can be consistently reproduced when setting a breakpoint at the line if ($Error)
.
When consulting the array of $Error
at the breakpoint the following is shown:
I don;t know why this happens, but it could be related to #66. I’m using the PowerShell Preview 2.0.1
.
Issue Analytics
- State:
- Created 4 years ago
- Reactions:1
- Comments:18 (1 by maintainers)
Top GitHub Comments
I might suggest that the debugger should always explicitly provide -ErrorVariable for every command it runs, so that its errors (designed or not) are always kept in a sandbox…
There is a StackOverflow thread (or more) asking about this sphere: https://stackoverflow.com/q/71562738/147637