Skip to content

Fix: Add if: always() to "Ingest agent output" step#15630

Merged
pelikhan merged 2 commits intomainfrom
copilot/debug-duplicate-code-detector-again
Feb 14, 2026
Merged

Fix: Add if: always() to "Ingest agent output" step#15630
pelikhan merged 2 commits intomainfrom
copilot/debug-duplicate-code-detector-again

Conversation

Copy link
Contributor

Copilot AI commented Feb 14, 2026

The "Ingest agent output" step was skipped when agents failed, preventing the agent-output artifact from being uploaded. This caused conclusion jobs to fail when attempting to download the missing artifact for error reporting.

Problem

GitHub Actions skips subsequent steps by default when a step fails. Without if: always(), the sequence was:

  1. Agent step fails
  2. "Ingest agent output" is skipped
  3. GH_AW_AGENT_OUTPUT env var never set
  4. "Upload sanitized agent output" is skipped (despite having if: always(), it checks the env var)
  5. Conclusion job fails downloading missing artifact

Changes

Modified pkg/workflow/compiler_yaml.go:

yaml.WriteString("      - name: Ingest agent output\n")
yaml.WriteString("        id: collect_output\n")
yaml.WriteString("        if: always()\n")  // Added
fmt.Fprintf(yaml, "        uses: %s\n", GetActionPin("actions/github-script"))

Recompiled 150 workflow lock files to apply the fix systematically.

Impact

Agent output is now collected and uploaded regardless of agent success/failure, enabling proper error reporting and debugging for failed workflow runs.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login + "/" + .name 64/bin/go GOINSECURE GOMOD GOMODCACHE go estl�� -json GO111MODULE ache/go/1.25.0/x-importcfg GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login + "/" + .name 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha ithub/workflows/ai-moderator.md GOPROXY 1522549/b395/_pkg_.a GOSUMDB GOWORK 64/bin/go /bin/sh -c echo "Syncing install-gh-aw.sh to actions/setup-cli/install.sh..." l /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/compile npx prettier --wgit ache/go/1.25.0/xrev-parse 64/bin/go /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linucurrent (local changes) (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha feature; rm -rf / git ache/node/24.13.0/x64/bin/node (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v2
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v2 --jq .object.sha (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683 --jq .object.sha (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha 1977547737 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet k/gh�� artifacts-summary.md GO111MODULE ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD erignore ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha po.git --conditions ache/node/24.13.0/x64/bin/node --experimental-igit --require /home/REDACTED/wor--show-toplevel ache/node/24.13.0/x64/bin/node rev-�� HEAD git in/git mport-meta-resolgit go k/gh-aw/gh-aw/ac--show-toplevel k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/dist/workers/forks.js (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha ACCEPT (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha it/ref/tags/v6 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha --noprofile (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha */*.ts' '**/*.json' --ignore-path ../../../.pret-n1 GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuconfig (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -bool -buildtags /usr/bin/git -errorsas -ifaceassert -nilfunc git -C /tmp/gh-aw-test-runs/20260214-061858-40126/test-975191085/.github/workflows s/test.md /usr/bin/git "prettier" --wrigit go 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha GOMODCACHE go /usr/bin/git -json GO111MODULE nch,headSha,disp--show-toplevel git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha (http block)
  • https://api.github.com/repos/actions/download-artifact/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v6 --jq .object.sha (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v7
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha k/_temp/copilot-developer-action-main/dist/index.js (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha INVALID,NEW -j DROP (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha celain --ignore-submodules | head -n 10 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha ithub/workflows (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c --jq .object.sha (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha 0 -j ACCEPT (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha 1522549/b386/_pkg_.a GO111MODULE 1522549/b386=> GOINSECURE GOMOD GOMODCACHE 9184128/b353/importcfg estl�� y8K0/U8Icm1mEpbX-P-mMy8K0 l /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/compile **/*.ts **/*.json --ignore-path /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha nitial commit' -trimpath ache/node/24.13.0/x64/bin/node -p main -lang=go1.25 git t-27�� bility_SameInputSameOutput4143438164/001/stability-test.md -dwarf=false /home/REDACTED/work/gh-aw/gh-aw/actions/node_modules/.bin/git go1.25.0 -c=4 -nolocalimports git (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha 0 -j ACCEPT (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha lOsxw5bVz GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link ortc�� prettier stmain.go 0/x64/bin/node **/*.ts **/*.json --ignore-path -q/JBtykRIlcGWOtwYUQjgZ/sDu2CR3h_UvEY3mRKoYI (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha 1522549/b347/vet.cfg 64/pkg/tool/linux_amd64/vet /usr/local/bin/git --show-toplevel sh t git --ve�� 0/x64/bin/node git /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/.bin/git --show-toplevel 0/x64/bin/node cfg git (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v6 --jq .object.sha (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v6 --jq .object.sha ./cmd/gh-aw (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v6 --jq .object.sha d -n 10 (http block)
  • https://api.github.com/repos/anchore/sbom-action/git/ref/tags/v0
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha (http block)
  • https://api.github.com/repos/docker/build-push-action/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha TOKEN"; }; f get-f TOKEN"; }; f getowner=github 0/x64/bin/bash hub.com/.extrahegit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha (http block)
  • https://api.github.com/repos/docker/login-action/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq .object.sha (http block)
  • https://api.github.com/repos/docker/metadata-action/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v5 --jq .object.sha (http block)
  • https://api.github.com/repos/docker/setup-buildx-action/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 git 64/pkg/tool/linux_amd64/cgo --show-toplevel go /usr/bin/git 64/pkg/tool/linux_amd64/cgo --co�� node --conditions in/git --experimental-igit --require /home/REDACTED/wor--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 git ache/node/24.13.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/go mport-meta-resolgit nly k/gh-aw/gh-aw/ac--show-toplevel k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/dist/workers/--conditions /hom�� test-mZ28pf/text-output.go x_amd64/vet p/bin/git --show-toplevel go /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE i8/wl1tDiMkVqxwJLLHK96I/vmtrAJLFUOpvBl5XgcBk (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 git bin/go mport-meta-resolgit nly ode-gyp-bin/node--show-toplevel k/gh-aw/gh-aw/actions/setup/js/nremote.origin.url /hom�� test-mZ28pf/text-output.go x_amd64/vet tnet/tools/git --show-toplevel go ode_modules/.bin--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 git 64/pkg/tool/linux_amd64/compile --show-toplevel go /usr/bin/git 64/pkg/tool/linux_amd64/compile --co�� test-AInQ4q/error.go --conditions 0/x64/bin/node --experimental-i/usr/bin/git --require /home/REDACTED/wor--get-regexp git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/22012118167/artifacts
    • Triggering command: /usr/bin/gh gh run download 22012118167 --repo github/gh-aw --name agent-artifacts (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE ndor/bin/sh GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 git 64/pkg/tool/linux_amd64/asm --show-toplevel go /usr/bin/git 64/pkg/tool/linux_amd64/asm --co�� test-AInQ4q/error.go --conditions es/.bin/git --experimental-igit --require /home/REDACTED/wor--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 r.go At,event,headBranch,headSha,displayTitle --show-toplevel go /usr/bin/git 64/pkg/tool/linux_amd64/vet --co�� node --conditions ache/go/1.25.0/x64/bin/git --experimental-igit --require /home/REDACTED/wor--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 git ache/go/1.25.0/x64/pkg/tool/linux_amd64/asm --show-toplevel go /usr/bin/git ache/go/1.25.0/x64/pkg/tool/linu-1 --co�� node --conditions ache/node/24.13.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/git --experimental-igit --require /home/REDACTED/wor--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path npx prettier --wGOINSECURE go 64/bin/go ath /dev/null GO111MODULE 64/bin/go sh -c npx prettier --wGOSUMDB 924569/b371/impoGOWORK 64/bin/go tierignore gent output" ste-c 64/bin/go go (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 --ignore-path ../../../.pretti-bool go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github%2Fworkflows%2Faudit-workflows.md
    • Triggering command: /opt/hostedtoolcache/node/24.13.0/x64/bin/node /opt/hostedtoolcache/node/24.13.0/x64/bin/node --conditions node --conditions development --experimental-import-meta-resolve --require /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/dist/workers/forks.js GO111MODULE 0/x64/bin/node git rev-�� --show-toplevel go /usr/bin/git vaScript25065211/opt/hostedtoolcache/node/24.13.0/x64/bin/node stmain.go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/c4e091835c7a94dc7d3acb8ed3ae145afb4995f3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/c4e091835c7a94dc7d3acb8ed3ae145afb4995f3 --jq .object.sha (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet tion�� y.md GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha (http block)
  • https://api.github.com/repos/githubnext/agentics/git/ref/tags/-
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/- --jq .object.sha ./cmd/gh-aw (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion ve --require tions/setup/js/n--show-toplevel tions/setup/js/node_modules/vitest/dist/workers/remote.origin.url show�� --verify --quiet k/gh-aw/gh-aw/actions/setup/node_modules/.bin/git mport-meta-resolgit ache/go/1.25.0/xrev-parse k/gh-aw/gh-aw/ac--show-toplevel k/gh-aw/gh-aw/actions/setup/js/node_modules/viteremote.origin.url (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go **/*.json --ignore-path ../../../.pretti"prettier" --check '**/*.cjs' '**/*.ts' '**/*.json' --ignore-path ../../../.prettierignore sh -c npx prettier --wGOSUMDB 924569/b370/impoGOWORK 64/bin/go tierignore gent output" stefor-each-ref 64/bin/go go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo -importcfg /tmp/go-build4219281073/b001/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/cmd/gh-aw/main.go pdk3j5hZFsvO -c q "All matched f**/*.json 924569/b377/impo--ignore-path 64/bin/go che/go-build/c0//opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/link GOPROXY 64/bin/go go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state ache/go/1.25.0/x-nolocalimports GOINSECURE GOMOD GOMODCACHE go env '**/*.ts' '**/*.json' --ignore-path ../../../.prettierignore GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name npx prettier --wGOINSECURE go 64/bin/go ath /dev/null GO111MODULE 64/bin/go /bin/sh -c cd actions/setupGOSUMDB node 64/bin/go tierignore gent output" ste.github/aw/actions-lock.json 64/bin/go go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name --show-toplevel /usr/bin/gh /usr/bin/git -- echo /usr/bin/git git rev-�� --show-toplevel git git WorkflowFiles_Wigit go /usr/bin/git git (http block)
  • https://api.github.com/user
    • Triggering command: /usr/bin/gh gh api user --jq .login (http block)
    • Triggering command: /usr/bin/gh gh api user --jq .login "prettier" --wriGOINSECURE go 64/bin/go -json GO111MODULE 64/bin/go node /hom�� --write **/*.cjs 64/bin/go **/*.json --ignore-path ../../../.pretti--check sh (http block)
    • Triggering command: /usr/bin/gh gh api user --jq .login -json GO111MODULE bin/node GOINSECURE GOMOD GOMODCACHE go 0/x6�� -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>[agentics] Duplicate Code Detector failed</issue_title>
<issue_description>### Workflow Failure

Workflow: Duplicate Code Detector
Branch: main
Run URL: https://github.com/github/gh-aw/actions/runs/22012118167

Action Required

Debug this workflow failure using the agentic-workflows agent:

/agent agentic-workflows debug the agentic workflow duplicate-code-detector failure in https://github.com/github/gh-aw/actions/runs/22012118167

Generated from Duplicate Code Detector

  • expires on Feb 21, 2026, 5:43 AM UTC

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

The "Ingest agent output" step was missing the `if: always()` condition,
causing it to be skipped when the agent (Codex/Copilot/etc.) failed. This
prevented the `agent-output` artifact from being uploaded, which caused
the conclusion job to fail when trying to download it.

This fix ensures that agent output is collected and uploaded even when
the agent step fails, allowing proper error reporting and debugging.

Fixes #15627

Co-authored-by: pelikhan <[email protected]>
Copilot AI changed the title [WIP] Debug workflow failure for duplicate code detector Fix: Add if: always() to "Ingest agent output" step Feb 14, 2026
Copilot AI requested a review from pelikhan February 14, 2026 06:24
@pelikhan pelikhan added the smoke label Feb 14, 2026
@github-actions
Copy link
Contributor

🧪 Smoke Temporary ID is now testing temporary ID functionality...

@github-actions
Copy link
Contributor

🧪 Smoke Project is now testing project operations...

@github-actions
Copy link
Contributor

📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing...

@github-actions
Copy link
Contributor

github-actions bot commented Feb 14, 2026

🎬 THE ENDSmoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨

@github-actions
Copy link
Contributor

github-actions bot commented Feb 14, 2026

🌑 The shadows whisper... Smoke Codex failed. The oracle requires further meditation...

@github-actions
Copy link
Contributor

github-actions bot commented Feb 14, 2026

Changeset Generator failed. Please review the logs for details.

@github-actions
Copy link
Contributor

Smoke Temporary ID completed successfully. Temporary ID validation passed.

@github-actions
Copy link
Contributor

Agent Container Tool Check

Tool Status Version
bash 5.2.21
sh available
git 2.52.0
jq 1.7
yq 4.52.2
curl 8.5.0
gh 2.86.0
node 20.20.0
python3 3.12.3
go 1.24.13
java 21.0.10
dotnet 10.0.102

Result: 12/12 tools available ✅

AI generated by Agent Container Smoke Test

@github-actions
Copy link
Contributor

Smoke Project completed successfully. All project operations validated.

@github-actions
Copy link
Contributor

✅ Smoke test results for run 22012680610:

PRs tested: #15632, #15630
Status: ⚠️ PARTIAL (9/11 passed)
Failed: Serena MCP, Playwright (not configured)

@copilot-swe-agent - see issue #15638 for full details

AI generated by Smoke Copilot

@github-actions
Copy link
Contributor

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

@pelikhan pelikhan marked this pull request as ready for review February 14, 2026 06:30
Copilot AI review requested due to automatic review settings February 14, 2026 06:30
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 updates the generated GitHub Actions workflows so the “Ingest agent output” step runs even when prior agent steps fail, ensuring the agent-output artifact is still produced for downstream error reporting.

Changes:

  • Update workflow compiler output to emit if: always() for the “Ingest agent output” step.
  • Regenerate workflow lock files so all compiled workflows consistently include the new condition.

Reviewed changes

Copilot reviewed 144 out of 144 changed files in this pull request and generated no comments.

Show a summary per file
File Description
pkg/workflow/compiler_yaml.go Ensures the generated “Ingest agent output” step includes if: always() so ingestion runs after failures.
.github/workflows/agent-performance-analyzer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/agent-persona-explorer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/ai-moderator.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/archie.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/artifacts-summary.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/audit-workflows.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/auto-triage-issues.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/blog-auditor.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/bot-detection.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/brave.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/breaking-change-checker.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/changeset.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/ci-coach.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/ci-doctor.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/claude-code-user-docs-review.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/cli-consistency-checker.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/cli-version-checker.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/cloclo.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/code-scanning-fixer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/code-simplifier.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/commit-changes-analyzer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/copilot-agent-analysis.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/copilot-cli-deep-research.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/copilot-pr-merged-report.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/copilot-pr-nlp-analysis.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/copilot-pr-prompt-analysis.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/copilot-session-insights.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/craft.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-assign-issue-to-user.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-choice-test.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-cli-performance.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-cli-tools-tester.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-code-metrics.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-compiler-quality.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-copilot-token-report.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-doc-updater.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-fact.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-file-diet.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-firewall-report.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-issues-report.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-malicious-code-scan.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-mcp-concurrency-analysis.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-multi-device-docs-tester.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-news.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-observability-report.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-performance-summary.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-regulatory.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-repo-chronicle.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-safe-output-optimizer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-secrets-analysis.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-semgrep-scan.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-syntax-error-quality.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-team-evolution-insights.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-team-status.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-testify-uber-super-expert.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/daily-workflow-updater.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/deep-report.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/delight.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/dependabot-burner.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/dependabot-go-checker.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/dev-hawk.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/dev.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/developer-docs-consolidator.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/dictation-prompt.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/discussion-task-miner.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/docs-noob-tester.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/draft-pr-cleanup.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/duplicate-code-detector.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/example-workflow-analyzer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/firewall-escape.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/functional-pragmatist.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/github-mcp-structural-analysis.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/github-mcp-tools-report.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/github-remote-mcp-auth-test.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/glossary-maintainer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/go-fan.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/go-logger.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/go-pattern-detector.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/gpclean.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/grumpy-reviewer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/hourly-ci-cleaner.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/instructions-janitor.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/issue-arborist.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/issue-classifier.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/issue-monster.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/issue-triage-agent.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/jsweep.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/layout-spec-maintainer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/lockfile-stats.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/mcp-inspector.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/mergefest.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/notion-issue-summary.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/org-health-report.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/pdf-summary.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/plan.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/poem-bot.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/portfolio-analyst.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/pr-nitpick-reviewer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/pr-triage-agent.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/prompt-clustering-analysis.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/python-data-charts.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/q.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/refiner.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/release.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/repo-audit-analyzer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/repo-tree-map.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/repository-quality-improver.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/research.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/safe-output-health.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/schema-consistency-checker.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/scout.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/security-compliance.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/security-review.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/semantic-function-refactor.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/sergo.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/slide-deck-maintainer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/smoke-claude.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/smoke-codex.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/smoke-copilot.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/smoke-opencode.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/smoke-project.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/smoke-temporary-id.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/smoke-test-tools.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/stale-repo-identifier.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/static-analysis-report.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/step-name-alignment.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/sub-issue-closer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/super-linter.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/technical-doc-writer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/terminal-stylist.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/test-create-pr-error-handling.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/test-dispatcher.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/test-project-url-default.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/tidy.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/typist.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/ubuntu-image-analyzer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/unbloat-docs.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/video-analyzer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/weekly-issue-summary.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/workflow-generator.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/workflow-health-manager.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/workflow-normalizer.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.
.github/workflows/workflow-skill-extractor.lock.yml Regenerated lockfile to include if: always() on “Ingest agent output”.

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

Copilot AI added a commit that referenced this pull request Feb 14, 2026
@pelikhan pelikhan merged commit 6871c5c into main Feb 14, 2026
219 of 221 checks passed
@pelikhan pelikhan deleted the copilot/debug-duplicate-code-detector-again branch February 14, 2026 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[agentics] Duplicate Code Detector failed

2 participants