Hi @Hubert ,
Thank you for the detailed question.
The screenshot’s 0x800705b4 corresponds to Win32 ERROR_TIMEOUT (1460). It does not itself mean “already running”; that is the Xbox app’s message for the failed launch. Microsoft’s System Error Codes (1300–1699) defines the code, while Debug system error codes explains why the code alone cannot identify which operation failed.
1. Does Xbox/Gaming Services treat the package as still running while RuntimeBroker is alive?
For MSIXVC-packaged PC games, Microsoft’s GDK PC Bootstrapper documentation confirms that Gaming Runtime Services checks whether the game is already running before launching it. However, the documentation does not say that a surviving RuntimeBroker.exe is counted as the game. Ending the broker allows relaunch in your case, but that observation does not establish whether the broker itself or other state from the previous launch is responsible.
2. What is the expected lifetime of the per-app RuntimeBroker, and what can keep it alive after the game exits?
Based on the documentation I reviewed, there is no published requirement for this broker to exit as soon as the game closes, or a documented 45–60-second expected lifetime. Outstanding brokered activity is a possibility, but the -Embedding command line does not identify what is keeping this instance alive.
Your WebView2 observation is a useful clue: RuntimeBroker starts when WebView2 is created, yet remains after the msedgewebview2.exe processes exit. Microsoft’s WebView2 process model and process-related events guidance describe WebView2’s processes and their exit events. They do not establish why RuntimeBroker remains.
3. Is this a known issue with a fix, or is there a supported way for the game to make sure the broker exits on shutdown?
Currently, there hasn't been any documented fix for this issue or an API that guarantees RuntimeBroker will terminate when the game shuts down. The game should close and release resources it owns. For a Win32 WebView2 host, Microsoft documents ICoreWebView2Controller::Close for closing the WebView and cleaning up its underlying browser instance. That is appropriate application cleanup, but not a guarantee that RuntimeBroker will exit.
I hope this helps.
If this instruction is applicable to your situation, I would greatly appreciate it if you could follow the instruction here so others experiencing similar behavior can benefit from it as well.