Change:
When having a launch config for debugging extensions which uses a task which uses a missing problem matcher (like ), the extension host development window no longer pops up. This used to work in the past. This apparently used to work until recently. cc
I'm not sure what a missing problem matcher is - if you mean as the problem matcher, we used to create the even when there was no problem matcher provided and that changed here wasn't around for that change, so it's possible I broke this then
I think means that if your task refers to a problem matcher that isn't installed.
In our case it was:
thanks for that info. Pretty sure the cause is . Did this repro in insider's for you?
Not sure what you mean here. I haven't installed the mentioned extension (watcher), used insiders, our run stoped working.
I can reproduce - have a with a that's either invalid or non-existent IE and . Debug and the window doesn't open
Thanks a lot!

Discussion:
import { IPaneCompositePartService } from 'vs/workbench/services/panecomposite/browser/panecomposite'; import { IPathService } from 'vs/workbench/services/path/common/pathService'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; <ins> import { IDisposable } from 'xterm'; </ins> interface ITerminalData { terminal: ITerminalInstance;

let terminal: ITerminalInstance | undefined = undefined; let error: TaskError | undefined = undefined; let promise: Promise<ITaskSummary> | undefined = undefined; <del> const problemMatchers = await this._resolveMatchers(resolver, task.configurationProperties.problemMatchers); if (task.configurationProperties.isBackground && problemMatchers.length) { </del> <ins> if (task.configurationProperties.isBackground) { const problemMatchers = await this._resolveMatchers(resolver, task.configurationProperties.problemMatchers); </ins> const watchingProblemMatcher = new WatchingProblemCollector(problemMatchers, this._markerService, this._modelService, this._fileService); if ((problemMatchers.length > 0) && !watchingProblemMatcher.isWatching()) { this._appendOutput(nls.localize('TerminalTaskSystem.nonWatchingMatcher', 'Task {0} is a background task but uses a problem matcher without a background pattern', task._label));

this._logService.error('Task terminal process never got ready'); }); this._fireTaskEvent(TaskEvent.create(TaskEventKind.Start, task, terminal.instanceId, resolver.values)); <del> const onData = terminal.onLineData((line) => { watchingProblemMatcher.processLine(line); if (!delayer) { delayer = new Async.Delayer(3000); } delayer.trigger(() => { watchingProblemMatcher.forceDelivery(); delayer = undefined; </del> <ins> let onData: IDisposable | undefined; if (problemMatchers.length) { // prevent https://github.com/microsoft/vscode/issues/174511 from happening onData = terminal.onLineData((line) => { watchingProblemMatcher.processLine(line); if (!delayer) { delayer = new Async.Delayer(3000); } delayer.trigger(() => { watchingProblemMatcher.forceDelivery(); delayer = undefined; }); </ins> }); <del> }); </del> <ins> } </ins> promise = new Promise<ITaskSummary>((resolve, reject) => { const onExit = terminal!.onExit((terminalLaunchResult) => { const exitCode = typeof terminalLaunchResult === 'number' ? terminalLaunchResult : terminalLaunchResult?.code; <del> onData.dispose(); </del> <ins> onData?.dispose(); </ins> onExit.dispose(); const key = task.getMapKey(); if (this._busyTasks[mapKey]) {