Self-report agent issue
When your own tools fail mid-task — sandbox / filesystem / terminal / MCP
/ integration timeouts, auth errors, env setup failures — file a single
structured incident via the report_incident system tool.
You MUST NOT call jira_create_task, notion_*, planning_tasks_bulk_create,
or any other task-manager tool directly for runtime failures. The platform
chooses where the report fans out (PolyGents observability + customer-
configured destinations). Your job is one call to report_incident.
Procedure
- Stop the failing flow. Do not retry indefinitely (max 2 retries unless you can articulate why the error is a transient network blip).
- Diagnose the failure with the
diagnose-tool-failureskill before reporting (env / auth / quota / code / data / unknown). - Tell the user in chat what failed and that you are filing a report. Stay concrete: tool name, error code, what you were trying to do.
- Attach evidence first. For each significant log / failing artifact
you can read from the agent filesystem, push it to the initiative with
initiative_file_uploadand capture the returned id. Pass those ids inevidence_file_ids. - Call
report_incidentwith the payload below. - Tell the user the returned
incidentKeyand a short next-step suggestion (retry once the platform fixes , switch to tool, etc.).
When to invoke
Invoke this skill after a retry you can justify when any of the following occurs:
agent_filesystem_*,agent_coding_run,agent_terminal_runreturns a timeout,ENV_STARTUP_FAILED,IMAGE_PULL_FAILED, OOM, or similar infra error.browserbase_fetchreturnsNAVIGATE_FAILED/WAIT_FAILED/EXTRACT_TEXT_FAILEDrepeatedly on a stable URL.- Any MCP / integration tool returns
AUTH_MISSING/INTEGRATION_DISABLEDfor an integration the user has clearly connected. - A tool returns 5xx-class errors, schema mismatches, or non-JSON output three times in a row.
- A tool you expected to exist returns "unknown tool" (registry drift).
If retries succeed, do not file. Only report when the failure is persistent or reproducible-by-the-platform.
report_incident payload
{
"category": "issue",
"hypothesis": "env",
"severity": "high",
"summary": "[Agent <name>] <tool> failed: <error code>",
"description": "<structured markdown — see template below>",
"failing_tool": "agent_filesystem_write",
"error_code": "TIMEOUT",
"evidence_file_ids": ["<from initiative_file_upload>"],
"blocking": true
}
category: always"issue"for runtime failures. Use"product_bug"only when you have verified a defect in the customer-owned product.hypothesis: one ofenv | auth | quota | code | data | unknown— picked bydiagnose-tool-failure.
Description template (markdown)
## Environment
- Agent: <template name + persona display name>
- Conversation / initiative: <id if known>
- Timestamp (UTC): <ISO-8601 from tool result, else now>
- Runtime: <assistants / syngle / copilot>
- Sandbox env: <e2b / workadventure / docker — from `environments[]`>
## What I was trying to do
<One sentence — the user-visible goal>
## Steps to reproduce (from my recent tool trace)
1. <tool_name>(<short args>) -> <result/error>
2. ...
3. <tool_name>(<short args>) -> <error here>
## Expected
<What the tool should have returned to unblock me>
## Actual
<Exact error code + message, copied verbatim>
## Severity
- Blocking: <yes/no>
- Impact: <who/what is blocked — user task, initiative, recurring agents>
## Hypothesis
<short root-cause guess from `diagnose-tool-failure`>
## Suggested next step
<retry after platform fix / workaround / escalate / etc.>
Do NOT
- Do not call
jira_create_taskfor runtime failures. The server-side guardrail will reject it withUSE_REPORT_INCIDENT_INSTEADon non-internal accounts. Filing throughreport_incidentis the only correct path. - Do not silently retry forever and pretend the user's request succeeded.
- Do not fabricate logs or reproduction steps you didn't observe.
- Do not include secrets, tokens, or full chat transcripts; the platform redacts before sending, but you should not paste them in the first place.
Tone
Blameless and operational. Avoid "the platform is broken" rhetoric — describe what failed, where, and what is needed to unblock you.