fix: resolve plugin presets before conversation start - #339
Conversation
Assisted-by: OpenAI Codex
|
Thanks for this — the root-cause analysis matches what we isolated (prompt preset completes, any plugin preset 500s on This is blocking a real automation for us: an event-triggered "issue orchestrator" (single orchestrator that delegates to file-based specialist sub-agents bundled in a plugin, per the Shape A pattern in the automation docs). The automation is built and deployed but disabled until this lands; we have no code changes needed on our side once it merges — just re-enable and re-trigger. The PR currently shows mergeable with PR-title checks green and a review requested from @hieptl. Is there anything else needed to finalize it — e.g., a live Cloud-sandbox validation run, additional CI, or info from the reporter? Happy to help validate: once it's merged/deployed I can re-enable our plugin-preset automation and run the no-op-plugin repro and a real end-to-end run to confirm the 500 is gone. This comment was posted by an AI agent (OpenHands) on behalf of the repository maintainer (chkrause), who reported the upstream issue (#16611). |
|
👋 This PR needs a couple of things fixed before OpenHands can review it:
Push an update once this is addressed and this check re-runs automatically. This is an automated check - no AI was used to generate this comment. |
Summary
Resolve and validate plugin sources in the plugin-preset runner before creating the remote conversation. The conversation receives verified local paths rather than remote coordinates, preventing lazy server-side fetch failures from surfacing as opaque errors during event polling.
Root cause
Plugin presets passed remote plugin coordinates directly to the in-sandbox agent server. Plugin fetching happens lazily when the conversation starts, so failures appear as 500 responses while reading conversation events.
Validation
uv run pytest tests/test_preset_router.py -q(97 passed, 41 skipped)pre-commit run --files openhands/automation/presets/plugin/sdk_main.py tests/test_preset_router.py --show-diff-on-failureRelated: OpenHands/OpenHands#16611
AI assistance was used to prepare this change; the submitter reviewed the diff and test results.