flutter-intellij icon indicating copy to clipboard operation
flutter-intellij copied to clipboard

FlutterTestRunner error - Parent node id should be defined

Open cdeil opened this issue 8 months ago • 5 comments

What happened

I click here:

Image

Error appear.

This is on latest MacOS.

Version information

IntelliJ IDEA 2024.3.5 • Flutter plugin io.flutter 83.0.4 • Dart plugin 243.26053.17

Flutter 3.29.0 • channel stable • https://github.com/flutter/flutter.git Framework • revision 35c388afb5 (8 weeks ago) • 2025-02-10 12:48:41 -0800 Engine • revision f73bfc4522 Tools • Dart 3.7.0 • DevTools 2.42.2

Exception

null

java.lang.Throwable: [FlutterTestRunner]: Parent node id should be defined: TestStartedEvent{name='', running=true}.
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:376)
	at com.intellij.execution.testframework.sm.runner.GeneralTestEventsProcessor.logProblem(GeneralTestEventsProcessor.java:376)
	at com.intellij.execution.testframework.sm.runner.GeneralTestEventsProcessor.logProblem(GeneralTestEventsProcessor.java:362)
	at com.intellij.execution.testframework.sm.runner.GeneralIdBasedToSMTRunnerEventsConvertor.findValidParentNode(GeneralIdBasedToSMTRunnerEventsConvertor.java:197)
	at com.intellij.execution.testframework.sm.runner.GeneralIdBasedToSMTRunnerEventsConvertor.createNode(GeneralIdBasedToSMTRunnerEventsConvertor.java:150)
	at com.intellij.execution.testframework.sm.runner.GeneralIdBasedToSMTRunnerEventsConvertor.doStartNode(GeneralIdBasedToSMTRunnerEventsConvertor.java:142)
	at com.intellij.execution.testframework.sm.runner.GeneralIdBasedToSMTRunnerEventsConvertor.onTestStarted(GeneralIdBasedToSMTRunnerEventsConvertor.java:110)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter.fireOnTestStarted(OutputToGeneralTestEventsConverter.java:142)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter$MyServiceMessageVisitor.visitTestStarted(OutputToGeneralTestEventsConverter.java:427)
	at jetbrains.buildServer.messages.serviceMessages.TestStarted.visit(TestStarted.java:62)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter.processServiceMessage(OutputToGeneralTestEventsConverter.java:135)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter.processServiceMessages(OutputToGeneralTestEventsConverter.java:129)
	at io.flutter.test.DartTestEventsConverterZ.doProcessServiceMessages(DartTestEventsConverterZ.java:156)
	at io.flutter.test.DartTestEventsConverterZ.handleStart(DartTestEventsConverterZ.java:407)
	at io.flutter.test.DartTestEventsConverterZ.process(DartTestEventsConverterZ.java:184)
	at io.flutter.test.DartTestEventsConverterZ.processEventText(DartTestEventsConverterZ.java:144)
	at io.flutter.test.DartTestEventsConverterZ.processServiceMessages(DartTestEventsConverterZ.java:120)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter.processConsistentText(OutputToGeneralTestEventsConverter.java:113)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter$1.onTextAvailable(OutputToGeneralTestEventsConverter.java:70)
	at com.intellij.execution.testframework.sm.runner.OutputEventSplitter.onTextAvailableInternal(OutputEventSplitter.kt:81)
	at com.intellij.execution.testframework.sm.runner.OutputEventSplitter.onTextAvailable(OutputEventSplitter.kt:76)
	at com.intellij.smRunner.OutputEventSplitterBase.flushInternal(OutputEventSplitterBase.kt:162)
	at com.intellij.smRunner.OutputEventSplitterBase.flushInternal$default(OutputEventSplitterBase.kt:148)
	at com.intellij.smRunner.OutputEventSplitterBase.processInternal(OutputEventSplitterBase.kt:96)
	at com.intellij.smRunner.OutputEventSplitterBase.process(OutputEventSplitterBase.kt:77)
	at com.intellij.execution.testframework.sm.runner.OutputEventSplitter.process(OutputEventSplitter.kt:61)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter.process(OutputToGeneralTestEventsConverter.java:96)
	at com.intellij.execution.testframework.sm.SMTestRunnerConnectionUtil$2.onTextAvailable(SMTestRunnerConnectionUtil.java:217)
	at com.intellij.execution.process.ProcessHandler$2.onTextAvailable(ProcessHandler.java:292)
	at com.intellij.execution.process.ProcessHandler.notifyTextAvailable(ProcessHandler.java:223)
	at com.intellij.execution.process.ColoredProcessHandler.coloredTextAvailable(ColoredProcessHandler.java:68)
	at io.flutter.utils.MostlySilentColoredProcessHandler.coloredTextAvailable(MostlySilentColoredProcessHandler.java:75)
	at com.intellij.execution.process.AnsiEscapeDecoder.processTextChunk(AnsiEscapeDecoder.java:107)
	at com.intellij.execution.process.AnsiEscapeDecoder.escapeText(AnsiEscapeDecoder.java:69)
	at com.intellij.execution.process.ColoredProcessHandler.notifyTextAvailable(ColoredProcessHandler.java:57)
	at com.intellij.execution.process.BaseOSProcessHandler$SimpleOutputReader.onTextAvailable(BaseOSProcessHandler.java:133)
	at com.intellij.util.io.BaseOutputReader.sendText(BaseOutputReader.java:220)
	at com.intellij.util.io.BaseOutputReader.processInput(BaseOutputReader.java:204)
	at com.intellij.util.io.BaseOutputReader.readAvailableBlocking(BaseOutputReader.java:151)
	at com.intellij.util.io.BaseDataReader.readAvailable(BaseDataReader.java:72)
	at com.intellij.util.io.BaseDataReader.doRun(BaseDataReader.java:153)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:218)
	at com.intellij.util.io.BaseDataReader.lambda$start$0(BaseDataReader.java:48)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:103)
	at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:103)
	at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:109)
	at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:103)
	at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:27)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:735)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:732)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:732)
	at java.base/java.lang.Thread.run(Thread.java:1583)

cdeil avatar Apr 04 '25 13:04 cdeil

Not sure if there's anything for us to do here but maybe @helin24 will know...

pq avatar Apr 09 '25 00:04 pq

Doing a bit of testing with the latest Dart Plugin,

Image

I'm having a hard time reproducing:

Image

@jwren, @helin24: I wonder if either of you could take a crack at a repro?

pq avatar Jun 10 '25 21:06 pq

I get a slightly different error:

java.lang.Throwable: [FlutterTestRunner]: Missing nodeId: TestStartedEvent{name='', running=true}
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:375)
	at com.intellij.execution.testframework.sm.runner.GeneralTestEventsProcessor.logProblem(GeneralTestEventsProcessor.java:362)
	at com.intellij.execution.testframework.sm.runner.GeneralTestEventsProcessor.logProblem(GeneralTestEventsProcessor.java:348)
	at com.intellij.execution.testframework.sm.runner.GeneralIdBasedToSMTRunnerEventsConvertor.validateAndGetNodeId(GeneralIdBasedToSMTRunnerEventsConvertor.java:410)
	at com.intellij.execution.testframework.sm.runner.GeneralIdBasedToSMTRunnerEventsConvertor.findNode(GeneralIdBasedToSMTRunnerEventsConvertor.java:416)
	at com.intellij.execution.testframework.sm.runner.GeneralIdBasedToSMTRunnerEventsConvertor.doStartNode(GeneralIdBasedToSMTRunnerEventsConvertor.java:125)
	at com.intellij.execution.testframework.sm.runner.GeneralIdBasedToSMTRunnerEventsConvertor.onTestStarted(GeneralIdBasedToSMTRunnerEventsConvertor.java:110)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter.fireOnTestStarted(OutputToGeneralTestEventsConverter.java:130)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter$MyServiceMessageVisitor.visitTestStarted(OutputToGeneralTestEventsConverter.java:414)
	at jetbrains.buildServer.messages.serviceMessages.TestStarted.visit(TestStarted.java:62)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter.processServiceMessage(OutputToGeneralTestEventsConverter.java:123)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter.processServiceMessages(OutputToGeneralTestEventsConverter.java:117)
	at io.flutter.test.DartTestEventsConverterZ.doProcessServiceMessages(DartTestEventsConverterZ.java:153)
	at io.flutter.test.DartTestEventsConverterZ.handleStart(DartTestEventsConverterZ.java:404)
	at io.flutter.test.DartTestEventsConverterZ.process(DartTestEventsConverterZ.java:180)
	at io.flutter.test.DartTestEventsConverterZ.processEventText(DartTestEventsConverterZ.java:141)
	at io.flutter.test.DartTestEventsConverterZ.processServiceMessages(DartTestEventsConverterZ.java:117)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter.processConsistentText(OutputToGeneralTestEventsConverter.java:101)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter$1.onTextAvailable(OutputToGeneralTestEventsConverter.java:70)
	at com.intellij.execution.testframework.sm.runner.OutputEventSplitter.onTextAvailableInternal(OutputEventSplitter.kt:81)
	at com.intellij.execution.testframework.sm.runner.OutputEventSplitter.onTextAvailable(OutputEventSplitter.kt:76)
	at com.intellij.smRunner.OutputEventSplitterBase.flushInternal(OutputEventSplitterBase.kt:162)
	at com.intellij.smRunner.OutputEventSplitterBase.flushInternal$default(OutputEventSplitterBase.kt:148)
	at com.intellij.smRunner.OutputEventSplitterBase.processInternal(OutputEventSplitterBase.kt:96)
	at com.intellij.smRunner.OutputEventSplitterBase.process(OutputEventSplitterBase.kt:77)
	at com.intellij.execution.testframework.sm.runner.OutputEventSplitter.process(OutputEventSplitter.kt:61)
	at com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter.process(OutputToGeneralTestEventsConverter.java:96)
	at com.intellij.execution.testframework.sm.SMTestRunnerConnectionUtil$2.onTextAvailable(SMTestRunnerConnectionUtil.java:214)
	at com.intellij.execution.process.ProcessHandler$2.onTextAvailable(ProcessHandler.java:292)
	at com.intellij.execution.process.ProcessHandler.notifyTextAvailable(ProcessHandler.java:223)
	at com.intellij.execution.process.ColoredProcessHandler.coloredTextAvailable(ColoredProcessHandler.java:68)
	at io.flutter.utils.MostlySilentColoredProcessHandler.coloredTextAvailable(MostlySilentColoredProcessHandler.java:75)
	at com.intellij.execution.process.AnsiEscapeDecoder.processTextChunk(AnsiEscapeDecoder.java:106)
	at com.intellij.execution.process.AnsiEscapeDecoder.escapeText(AnsiEscapeDecoder.java:69)
	at com.intellij.execution.process.ColoredProcessHandler.notifyTextAvailable(ColoredProcessHandler.java:57)
	at com.intellij.execution.process.BaseOSProcessHandler$SimpleOutputReader.onTextAvailable(BaseOSProcessHandler.java:133)
	at com.intellij.util.io.BaseOutputReader.sendText(BaseOutputReader.java:220)
	at com.intellij.util.io.BaseOutputReader.processInput(BaseOutputReader.java:204)
	at com.intellij.util.io.BaseOutputReader.readAvailableBlocking(BaseOutputReader.java:151)
	at com.intellij.util.io.BaseDataReader.readAvailable(BaseDataReader.java:72)
	at com.intellij.util.io.BaseDataReader.doRun(BaseDataReader.java:153)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:249)
	at com.intellij.util.io.BaseDataReader.lambda$start$0(BaseDataReader.java:48)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:102)
	at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:102)
	at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:108)
	at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:102)
	at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:27)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:735)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:732)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:732)
	at java.base/java.lang.Thread.run(Thread.java:1583)

Investigating whether there's something off with my setup...

helin24 avatar Jun 12 '25 21:06 helin24

The error disappeared after I updated to flutter SDK master, so I think it's related to SDK versioning. But I'm not sure what version of flutter caused this.

helin24 avatar Jun 12 '25 21:06 helin24

Fantastic. Thanks!

pq avatar Jun 12 '25 21:06 pq

This was fixed with the https://github.com/flutter/flutter-intellij/pull/8330

jwren avatar Jul 31 '25 19:07 jwren