-
Notifications
You must be signed in to change notification settings - Fork 327
Safe outputs MCP server returns success but outputs.jsonl is empty (v0.65.5) #24125
Description
Bug Report
Summary
The safe outputs MCP server accepts tools/call requests and returns {"result":"success"} to the agent, but never persists items to outputs.jsonl. This causes agent_output.json to be {"items":[]}, which means downstream jobs (safe_outputs, custom safe-output jobs like slack_handoff_notify) have nothing to process.
Reproduction
- Failing run: https://github.com/github/copilot-sre/actions/runs/23902903652
- Workflow:
oncall-handoff-notes(schedule trigger,claude-opus-4.6) - gh-aw version: v0.65.5 (
github/gh-aw-actions/setup@15b2fa31e9a1b771c9773c162273924d8f5ea516) - Date: 2026-04-02
Evidence
-
Agent called both safe output tools successfully:
create_discussionat13:43:37Z→ response:{"result":"success"}slack_handoff_notifyat13:43:47Z→ response:{"result":"success"}
-
MCP Gateway confirmed healthy:
safeoutputsserver: 2 requests, 2 tool calls, 0 errors, 0% error rate
-
But outputs were never persisted:
safe-output-items.jsonl= 0 bytes (empty)agent_output.json={"items":[]}safe_outputsjob had nothing to processslack_handoff_notifyjob was skipped (contains(needs.agent.outputs.output_types, 'slack_handoff_notify')= false)
-
RPC messages confirm full payloads were sent:
create_discussionpayload included title + full markdown body (~76KB)slack_handoff_notifypayload included channel, handles, discussion_title, target_repo, week_of- Both received proper
{"result":"success"}responses from the HTTP MCP backend
-
All 8 prior weekly runs (Feb 5 - Mar 26) worked correctly — they all had 1-2 items in
agent_output.json
Impact
- Discussion was never created in the target repo
- Slack notification was never sent
- Workflow reported
conclusion: successdespite producing no output - Required manual mitigation (GraphQL discussion creation + direct Slack API call)
Expected Behavior
Items passed to the safe outputs MCP server via tools/call should be persisted to outputs.jsonl so that downstream jobs can process them.
Workaround
Pinned back to v0.65.4 via gh aw compile oncall-handoff-notes --action-tag v0.65.4 as a mitigation.