I am struggling with a running remote-dev-server which is restarting (first shuts down on a Application.exit()) and then is not bound to it’s initial project any more.
One can see this when calling remote-dev-server status $PROJECT. It returns the status as json.
Initially, when remote-dev-server is started, status is sane:
The problem can’t be reproduced at 100% but it happens quite frequently. Mostly after a period of idle.
I’d higly appreciate any hints that would help me pin point the cause and how to fix this.
ps. I filed this to the eclipse-che issue tracker, where I also have complete logs, if that helps:
do not indicate a start of a new host IDE instance.
These are healthcheck requests (likely from the Gateway), that answer that “no, it is not up”.
The command exits afterwards.
You can see the same health checks above as
2025-07-08 14:29:28,208 [12819432] INFO - #c.i.i.CommandLineProcessor - External command line:
where the command is being handled by the active Host instead.
I see the exit (which I had thought wasn’t user triggered) at idea.log · GitHub
2025-07-08 14:29:28,642 [12819866] SEVERE - #c.i.o.u.ObjectTree - getService(...) must not be null
...
at com.intellij.openapi.application.ExitStarter$Companion.forceExitApplication$lambda$1(ExitStarter.kt:32)
2025-07-08 14:57:28,536 [ 6] INFO - #c.i.p.i.b.AppStarter - ------------------------------------------------------ IDE STARTED ------------------------------------------------------
I see the remote-dev-server being (re-)started but apparently without project at idea.log · GitHub
It is not being restarted here.
The commands being called here and below are idea remoteDevStatus ..., not idea remoteDevHost ... (or idea serverMode).
It does spawn an IDE instance (a smaller one, to handle the command), but it reports the status - and immediately exits.
Compare "unattendedMode": false, and "unattendedMode": true, records.
See also that "appPid": 56, is being consistent for "unattendedMode": true, (it is being handled by long-living “IDE remote dev server”) and a new pid is used afterwards (that belongs to that short-living process).