Change:
Issue Type: <bBug</bI'm using vscode with wsl2, when I have a workspace that has more than one folder, I am unable to open a terminal. No errors, just an empty panel. Closing out the additional folders until there is one, then the terminal loads. Attempting to spawn an additional terminal with "+" does not work, same behavior VS Code version: Code 1.65.2 (, 2022-03-10T14:33:55.248Z) OS version: WindowsNT x64 10.0. Restricted Mode: No Remote OS version: Linux x64 5.10.60.1-microsoft-standard-WSL2 <details<summarySystem Info</summary </details<details<summaryExtensions (31)</summaryExtensionVersion ------ dotenv1.0.1 jupyter-keymap1.0.0 remote-containers0.224.2 remote-ssh0.76.1 remote-ssh-edit0.76.1 remote-wsl0.64.2 rewrap1.16.3 vscode-icons11.10.0 gitlens12.0.4 gc-excelviewer4.2.53 vscode-kubernetes-tools1.3.7 python2022.2. vscode-pylance2022.3.1 jupyter2022.2. jupyter-keymap1.0.0 jupyter-renderers1.0.6 ansible0.8.1 fabric8-analytics0.3.5 java1.4.0 vscode-commons0.0.6 vscode-xml0.19.1 vscode-yaml1.5.1 code-spell-checker2.1.7 shellcheck0.18.9 vscodeintellicode1.2.17 vscode-java-debug0.38.0 vscode-java-dependency0.19.0 vscode-java-pack0.22.0 vscode-java-test0.34.2 vscode-maven0.35.1 markdown-all-in-one3.4.0 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Can you reproduce this in insiders? I've been working in a multi repo workspace in insiders all day and have had no issues with terminals
My current vscode: ! A fresh insiders install with the remote wsl extension installed ! Version: 1.66.0-insider (user setup) Commit: Date: 2022-03-17T05:16:00.499Z Electron: 17.1.1 Chromium: 98.0.4758.109 16.13.0 V8: 9.8.177.11-electron.0 OS: WindowsNT x64 10.0. <details<summarySystem Info</summary CPUs | Intel(R) Core(TM) i7-10850H CPU @ 2.70GHz (12 x 2712) GPU Status | 2dcanvas: enabled canvasooprasterization: disabledoff directrenderingdisplaycompositor: disabledoffok gpucompositing: enabled multiplerasterthreads: enabledon ooprasterization: enabled opengl: enabledon rasterization: enabled rawdraw: disabledoffok skiarenderer: enabledon videodecode: enabled videoencode: enabled vulkan: disabledoff webgl: enabled webgl2: enabled Load (avg) | Memory (System) | 31.73GB (17.33GB free) Process Argv | Screen Reader | no VM | 0% Remote | WSL: Ubuntu-20.04 OS | Linux x64 5.10.60.1-microsoft-standard-WSL2 CPUs | Intel(R) Core(TM) i7-10850H CPU @ 2.70GHz (6 x 2712) Memory (System) | 19.55GB (14.05GB free) VM | 0% </details<details<summaryExtensions (31)</summaryExtension Version -- -- remote-wsl | ms- </details<details<summaryA/B Experiments</summary</details
Looks like if I shut vscode down in that state, when I start it up again and it restores my workspace, the terminal loads, but trying to open a second terminal has the same behavior !
Thanks for the images. Can you share your
<details<summaryRemote wsl settings</summary</details<details<summaryWindows settings</summary</details
any errors in the dev tools console? Help -Toggle Developer Tools
<details<summarydev tools console</summary</details
Can repro, this is the problem:
This is caused by casing problems: !
/ any verification steps?
open multiple folders in a WSL window. verify that a terminal loads

Discussion:
private readonly _backends = new Map<string, ITerminalBackend>(); registerTerminalBackend(backend: ITerminalBackend): void { <del> const key = backend.remoteAuthority ?? ''; </del> <ins> const key = this._sanitizeRemoteAuthority(backend.remoteAuthority); </ins> if (this._backends.has(key)) { throw new Error(`A terminal backend with remote authority '${key}' was already registered.`); }

} getTerminalBackend(remoteAuthority: string | undefined): ITerminalBackend | undefined { <del> return this._backends.get(remoteAuthority ?? ''); </del> <ins> return this._backends.get(this._sanitizeRemoteAuthority(remoteAuthority)); } private _sanitizeRemoteAuthority(remoteAuthority: string | undefined) { // Normalize the key to lowercase as the authority is case-insensitive return remoteAuthority?.toLowerCase() ?? ''; </ins> } } Registry.add(TerminalExtensions.Backend, new TerminalBackendRegistry());