Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Feb 3, 2026

Workflow run #21627970342 succeeded technically but triggered a functional failure alert when the agent produced no safe outputs despite 10 available candidate issues.

Root Cause

Agent received 10 properly-filtered issues (scores: 90, 55, 45...) but made zero tool calls across an 11-minute execution. No assign_to_agent, add_comment, or noop messages logged.

Infrastructure worked correctly:

  • MCP servers connected (github, safeoutputs)
  • All 5 safe output tools registered
  • Issues properly searched and prioritized
  • Agent job executed without errors

Agent behavior gap:

  • Ran 11+ minutes with full context
  • Made no tool calls whatsoever
  • Left no trace of decision rationale
  • No safe output file created: /opt/gh-aw/safeoutputs/outputs.jsonl

Fix Applied

Updated .github/workflows/issue-monster.md to mandate noop tool usage when no issues are assigned:

Changes:

  1. "If all issues are already being worked on" section: Changed from "Output a message" to explicit safeoutputs/noop tool call with code example
  2. Important Guidelines: Added new guideline "Always report outcome: If no issues are assigned, use the noop tool to explain why"
  3. Error Handling section: Completely rewritten to require noop tool calls for all no-action scenarios:
    • No issues found → noop with "🍽️ No suitable candidate issues - the plate is empty!"
    • All issues assigned → noop with "🍽️ All issues are already being worked on!"
    • No suitable separate issues → noop explaining which issues were considered and why
    • API errors → Use missing_tool or missing_data tools
  4. Added CRITICAL requirement: "You MUST call at least one safe output tool every run. If you don't assign any issues, you MUST call the noop tool to explain why. Never complete a run without making at least one tool call."

Impact

Future Issue Monster runs will now always provide transparency by calling the noop tool to explain why no issues were assigned, preventing silent failures where the agent completes successfully but produces no actionable outputs.

Tracking

Conclusion job correctly created issue #13461 and linked to parent #13383.

Custom agent used: agentic-workflows
GitHub Agentic Workflows (gh-aw) - Create, debug, and upgrade AI-powered workflows with intelligent prompt routing

Original prompt

Reference: https://github.com/github/gh-aw/actions/runs/21627970342/job/62332980784

Investigate why it failed

Custom agent used: agentic-workflows
GitHub Agentic Workflows (gh-aw) - Create, debug, and upgrade AI-powered workflows with intelligent prompt routing


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI changed the title [WIP] Investigate failure reason for job 62332980784 Investigation: Issue Monster run #21627970342 agent produced zero outputs Feb 3, 2026
Copilot AI requested a review from pelikhan February 3, 2026 11:56
@pelikhan
Copy link
Contributor

pelikhan commented Feb 3, 2026

@copilot fix prompt to call noop when no work was assigned

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 3, 2026

@copilot fix prompt to call noop when no work was assigned

Fixed in f89bffe. Updated the Issue Monster workflow prompt to mandate noop tool calls when no issues are assigned:

Key changes:

  • "If all issues are already being worked on" section now explicitly calls safeoutputs/noop tool
  • Added guideline: "Always report outcome: If no issues are assigned, use the noop tool to explain why"
  • Error Handling section now requires noop tool for all no-action scenarios (no issues found, all assigned, no suitable separate issues)
  • Added CRITICAL requirement: "You MUST call at least one safe output tool every run"

This ensures the agent will always provide visibility into why it chose not to assign any issues.

Copilot AI changed the title Investigation: Issue Monster run #21627970342 agent produced zero outputs Fix Issue Monster workflow to mandate noop when no issues assigned Feb 3, 2026
@pelikhan pelikhan marked this pull request as ready for review February 3, 2026 12:11
Copilot AI review requested due to automatic review settings February 3, 2026 12:11
@pelikhan pelikhan merged commit fc710e4 into main Feb 3, 2026
1 check passed
@pelikhan pelikhan deleted the copilot/investigate-job-failure branch February 3, 2026 12:12
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes the Issue Monster workflow to mandate noop tool usage when no issues can be assigned, addressing a silent failure where the agent completed successfully but made no tool calls despite having available candidate issues.

Changes:

  • Added explicit noop tool call requirement when all issues are already being worked on (with code example)
  • Added new guideline mandating outcome reporting via noop tool when no issues are assigned
  • Completely rewrote Error Handling section to require noop tool calls for all no-action scenarios with specific messaging
  • Added CRITICAL requirement that at least one safe output tool must be called on every run

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Output a message: "🍽️ All issues are already being worked on!"
- Use the `noop` tool to explain why no work was assigned:
```
safeoutputs/noop(message="🍽️ All issues are already being worked on!")
Copy link

Copilot AI Feb 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code example shows the noop tool call with a parameter name of "message", but this should be verified against the actual safe outputs MCP server API. Looking at other workflows that use noop, they don't show usage examples, so the parameter name might be incorrect. Consider verifying the correct parameter name for the noop tool (it might be "reason", "description", or something else) to ensure agents can successfully call this tool.

Suggested change
safeoutputs/noop(message="🍽️ All issues are already being worked on!")
safeoutputs/noop(reason="🍽️ All issues are already being worked on!")

Copilot uses AI. Check for mistakes.
- **No issues found**: Use the `noop` tool with message: "🍽️ No suitable candidate issues - the plate is empty!"
- **All issues assigned**: Use the `noop` tool with message: "🍽️ All issues are already being worked on!"
- **No suitable separate issues**: Use the `noop` tool explaining which issues were considered and why they couldn't be assigned (e.g., overlapping topics, sibling PRs, etc.)
- **API errors**: Use the `missing_tool` or `missing_data` tool to report the issue
Copy link

Copilot AI Feb 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The instruction references a missing_data tool, but this tool is not commonly seen in other workflows. Based on a search of other workflow files, only missing-tool appears to be a standard safe output tool. Verify that missing_data exists as a valid safe output tool, or correct this to use only missing_tool for reporting API errors. If missing_data is valid, it should also be declared in the safe-outputs configuration section.

Suggested change
- **API errors**: Use the `missing_tool` or `missing_data` tool to report the issue
- **API errors**: Use the `missing_tool` tool to report the issue

Copilot uses AI. Check for mistakes.
Comment on lines +432 to +438
If anything goes wrong or no work can be assigned:
- **No issues found**: Use the `noop` tool with message: "🍽️ No suitable candidate issues - the plate is empty!"
- **All issues assigned**: Use the `noop` tool with message: "🍽️ All issues are already being worked on!"
- **No suitable separate issues**: Use the `noop` tool explaining which issues were considered and why they couldn't be assigned (e.g., overlapping topics, sibling PRs, etc.)
- **API errors**: Use the `missing_tool` or `missing_data` tool to report the issue

**CRITICAL**: You MUST call at least one safe output tool every run. If you don't assign any issues, you MUST call the `noop` tool to explain why. Never complete a run without making at least one tool call.
Copy link

Copilot AI Feb 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Success Criteria section (lines 417-428, particularly steps 11-12) only describes success when issues are assigned, but the new error handling section mandates that calling noop when no issues can be assigned is also valid behavior. This creates a logical inconsistency. Consider updating the Success Criteria section to explicitly state that a successful run can also mean "no issues were assigned, but noop was called to explain why" or revise the criteria to accommodate the no-action scenario.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants