Verification level

Visible native Isaac lifecycle. Terminal A opens a visible Isaac application when the first Run request arrives. The client verifies every asynchronous operation reaches succeeded before submitting the next transition.

Run it

Terminal A:

bash
cd demo/server/02_lifecycle
fastsim config validate run.yaml --json
fastsim-server run.yaml

Terminal B:

bash
cd demo/server/02_lifecycle
python main.py

Each POST returns 202 and an operation ID. main.py polls that operation rather than assuming HTTP acceptance means the simulator already transitioned. The final stop cancels and drains active control and is terminal for further Run work; the application is not reusable. The HTTP process and operation history remain, and /run/close is the only lifecycle mutation still accepted so final cleanup can run. Case 10 demonstrates that handoff.

Common errors

  • application_not_ready: the server is draining or the managed application failed to open; inspect terminal A.
  • failed operation: print the returned stable error fields before retrying.
  • Connection refused: start terminal A first and keep it running.

Next: 03 — Run, Scenario, and plugins.