Skip to content

[aw-failures] [aw] Phantom asset: upload_assets fails despite agent success (missing staged PNGs) #39885

Description

@github-actions

Problem statement

Asset-producing agentic workflows complete the agent job successfully but then fail the downstream upload_assets (Push assets) job with ERR_SYSTEM: Asset file not found: /tmp/gh-aw/safeoutputs/assets/<file>.png. The agent emits upload_asset safe-output items that reference PNG files — including sha and byte size — that were never staged to the directory the upload pipeline reads. The run is reported as a failure even though the agent's analysis succeeded.

Affected workflows and run IDs

  1. Daily Code Metrics and Trend Tracking Agent — §27713375907 (quality_score_breakdown.png)
  2. Daily Security Observability Report — §27705239494
  3. The Daily Repository Chronicle — §27704205632
  4. Daily Agent of the Day Blog Writer — §27699677975

Probable root cause

  1. Path mismatch: the agent references assets under .../.gh-aw-assets/<file> while the upload_assets job reads /tmp/gh-aw/safeoutputs/assets/. No safe-outputs-assets artifact is produced by the agent job (Artifact not found for name: safe-outputs-assets), so the staging directory does not exist at push time.
  2. There is no validation that an upload_asset safe-output points to a real, staged file at emission time, so the agent can declare a phantom asset (with fabricated sha/size and markdown image links) that the pipeline then cannot find.

Proposed remediation

  1. Stage asset files to /tmp/gh-aw/safeoutputs/assets/ (or align the upload pipeline to read the agent's actual output path) before the upload_assets job runs, and ensure the safe-outputs-assets artifact is uploaded by the agent job.
  2. Validate file existence when an upload_asset safe-output is emitted: reject/skip items whose referenced file is missing instead of failing the whole job, and surface a clear agent-facing error.
  3. Make upload_assets fail-soft when some declared assets are missing (warn + upload what exists) so a single missing image does not fail an otherwise successful run.

Success criteria / verification

  1. A re-run of Daily Code Metrics produces the declared PNGs in /tmp/gh-aw/safeoutputs/assets/ and the upload_assets job succeeds.
  2. Emitting an upload_asset for a non-existent file produces a clear validation error at agent time, not an ERR_SYSTEM in a later job.
  3. No Asset file not found failures across the four affected workflows over a subsequent 24h window.

Parent report: see linked parent issue. Analyzed runs: 27713375907, 27705239494, 27704205632, 27699677975.
Related to #39883

Generated by 🔍 [aw] Failure Investigator (6h) ·

  • expires on Jun 24, 2026, 11:47 AM UTC-08:00

6h-window recurrence update — 2026-06-18 01:38 UTC

  1. Still active. Two more workflows hit the identical signature in the last 6h, both on main via schedule:
    • Agentic Workflow Audit Agent — §27721789885ERR_SYSTEM: Asset file not found: /tmp/gh-aw/safeoutputs/assets/wh_trends.png
    • Daily Project Performance Summary Generator (MCP Scripts) — §27720651183ERR_SYSTEM: Asset file not found: /tmp/gh-aw/safeoutputs/assets/activity_overview.png
  2. Root cause confirmed from the Push assets logs: the agent writes the PNGs to /tmp/gh-aw/agent/ (the upload step's own file listing shows /tmp/gh-aw/agent/activity_overview.png and /tmp/gh-aw/agent/velocity_metrics.png present), while the upload pipeline reads /tmp/gh-aw/safeoutputs/assets/. The staging directory is never populated — a path mismatch, matching this issue's hypothesis.
  3. Regression timing (audit-diff success→fail): Agentic Workflow Audit Agent succeeded through 2026-06-15 (§27579121502) and began failing 2026-06-16. The failing run added matplotlib charting (2.88M tokens / 43 turns vs a near-zero-asset baseline), i.e. it now emits PNG assets that never reach the staging dir.
  4. An active fix branch copilot/aw-failures-fix-upload-assets exists (the Smoke Copilot workflow_dispatch runs this window target it). Keep this issue open until that fix lands and a clean 24h window is observed.

References: §27721789885 · §27720651183 · §27579121502

Generated by 🔍 [aw] Failure Investigator (6h) ·



6h-window recurrence update — 2026-06-18 08:26 UTC

  1. Still active. Two more main/schedule workflows hit the identical upload_assets / Push assets signature in the last 6h while the agent job succeeded:
    • Documentation Noob Tester — §27738455642ERR_SYSTEM: Asset file not found for cli-commands.png, confusing-token-setup.png, home.png, quick-start.png, step3-no-monitoring.png.
    • Daily Firewall Logs Collector and Reporter — §27734553421 — same upload_assets / Push assets failure, agent job success.
  2. Sharper root cause (path-prefix mismatch, not just dir mismatch). In §27738455642 the same file is present under one prefix and reported missing under another: /tmp/gh-aw/safeoutputs/assets/home.png and /tmp/gh-aw/safeoutputs/assets/cli.png exist on disk, but the upload step looks under /home/runner/work/_temp/gh-aw/safeoutputs/assets/ and fails with ERR_SYSTEM: Asset file not found: /home/runner/work/_temp/gh-aw/safeoutputs/assets/home.png. The staging dir and the read dir differ by the /tmp/gh-aw vs /home/runner/work/_temp/gh-aw prefix — the agent stages some assets to the former while the upload pipeline resolves the latter. This refines the original ".gh-aw-assets vs /tmp/gh-aw/safeoutputs/assets" hypothesis: at least one path now stages correctly to safeoutputs/assets but under the wrong base prefix.
  3. Remediation rejig docs #1 (align staging path / read path) and Add workflow: githubnext/agentics/weekly-research #3 (fail-soft on missing assets, warn + upload what exists) both still apply and would have made both runs pass — §27738455642 had cli.png/home.png staged and only some assets missing, yet the whole job failed.
  4. Keep open until copilot/aw-failures-fix-upload-assets lands and a clean 24h window is observed.

References: §27738455642 · §27734553421

Generated by 🔍 [aw] Failure Investigator (6h) ·


6h-window recurrence update — 2026-06-18 13:53 UTC

Still active and unfixed. Six asset-producing workflows hit the identical phantom-asset signature in the last 6h, all agent job success + upload_assets (Push assets) failure:

  1. GitHub MCP Structural Analysis — §27760805416All 4 declared assets were missing; no assets published (toolset_sizes.png, usefulness_ratings.png, daily_trend.png, size_vs_usefulness.png).
  2. Daily Agentic Workflow AIC Usage Audit — §27759742314.
  3. Copilot PR Conversation NLP Analysis — §27756469234.
  4. Copilot Agent Prompt Clustering Analysis — §27755055618.
  5. daily-experiment-report — §27749537944.
  6. Copilot Session Insights — §27746306280.

Confirmed signature: the Push assets step checks out the assets branch, finds the declared PNGs absent from /home/runner/work/_temp/gh-aw/safeoutputs/assets/, emits one ##[warning]ERR_SYSTEM: Asset file not found per file, then fails the job with ##[error]All N declared assets were missing; no assets published. Matches this issue's path-mismatch root cause exactly. No clean 24h window yet — keep open until the staging fix lands.

References: §27760805416 · §27759742314 · §27746306280

Generated by 🔍 [aw] Failure Investigator (6h) ·

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions