We encountered the same issue. Since there has not been any updates on this post for several years I filed a new bug report with some additional details: Dashboard server erroneously reports program state "PLAYING" after safeguard stop
We noticed that the dashboard server command “running” reports the correct state, even though “programState” erroneously reports “PLAYING”. Furthermore, once a program has played an stopped, the dashboard server once again reports the correct state.
In our application, we run the robot in remote control and load/start/pause/stop programs through the dashboard server. We managed to make a workaround where:
- We use a combination of “programState” and “running” commands to get the actual program state.
- Whenever we load a program, we first load and run a dummy program that does nothing, before loading the desired program. This ensures that the robot is in a consistent state whenever a new program has been loaded.