wooden-umbrella-84098
08/28/2026, 9:31 PMwooden-umbrella-84098
08/28/2026, 9:32 PMwooden-umbrella-84098
08/28/2026, 9:41 PMCrashes report as, notRUNNING. The import blew up beforeFAILED, so seven runs are still hung open and only one recorded a failure.fire_callback
limited-student-10747
08/28/2026, 9:43 PMfresh-machine-37269
08/28/2026, 9:43 PMlimited-student-10747
08/28/2026, 9:46 PMwooden-umbrella-84098
08/28/2026, 9:49 PMwooden-umbrella-84098
08/28/2026, 9:49 PMwooden-umbrella-84098
08/28/2026, 9:49 PMwooden-umbrella-84098
08/28/2026, 9:50 PMwooden-umbrella-84098
08/28/2026, 9:51 PMfresh-machine-37269
08/28/2026, 9:54 PMPOST /runs/{run_id}/cancel exists; UI may already be covered by that work)
1. "Crashes report as RUNNING, not FAILED — import blew up before fire_callback, seven runs hung open, only one recorded failure" — not covered, so I opened a new issue.
I traced the code: in presets/prompt/sdk_main.py and presets/plugin/sdk_main.py, the completion callback is only sent by the workspace context manager's __exit__. Everything before the with workspace_ctx as workspace: block — the from openhands.sdk import ... at line 132/128 and the sys.exit(1) calls for missing env vars / invalid WORKSPACE_BASE — exits with no callback. The run then sits RUNNING until the watchdog times it out (~10min + margin) before marking it FAILED.
New issue opened: #406 — "Preset entrypoint crashes before the workspace context never fire the completion callback — runs hang in RUNNING instead of FAILED"
github.com/OpenHands/automation/issues/406
It proposes: (a) POST a FAILED callback on early exits (mirroring __exit__), (b) defer the SDK imports into the workspace context, and (c) an optional service-side short probe to detect finished-but-uncall'd commands sooner. Related issues #203 (hard SIGTERM kills) and #337 (ephemeral bash_events) are cross-referenced.
This reply was generated by an AI agent (OpenHands) on behalf of the user.