Skip to content

Auto Triage fails on every new issue: CLAUDE_CODE_OAUTH_TOKEN reaches its triage step empty #564

Open

Description

@YevheniiKotyrlo

Before submitting a new issue

  • I tested using the latest version of the library, as the bug might be already fixed.
  • I tested using a supported version of react native.
  • I checked for possible duplicate issues, with possible answers.

Bug summary

.github/workflows/auto-triage.yml runs on every opened issue and hands secrets.CLAUDE_CODE_OAUTH_TOKEN to anthropics/claude-code-base-action@beta. The secret reaches the "Run Claude triage" step empty, so the step fails before the triage starts, and the issue gets no label or comment. The workflow's runs succeeded until 2026-08-19 and have failed on every issue since 2026-09-09, while the file's last change is b5f2a4d (2026-04-16).

Library version

main at df32ce3

Environment info

System:
  OS: Windows 11 10.0.26300
  CPU: "(32) x64 AMD Ryzen 9 9950X3D 16-Core Processor          "
  Memory: 160.57 GB / 255.67 GB
Binaries:
  Node:
    version: 26.12.1
    path: C:\Program Files\nodejs\node.EXE
  Yarn:
    version: 4.9.2
    path: C:\Users\<user>\AppData\Roaming\npm\yarn.CMD
  npm:
    version: 12.2.1
    path: C:\Program Files\nodejs\npm.CMD
  Watchman: Not Found
SDKs:
  Android SDK: Not Found
  Windows SDK:
    AllowDevelopmentWithoutDevLicense: Enabled
    Versions:
      - 10.0.19041.0
      - 10.0.26100.0
IDEs:
  Android Studio: AI-262.9437.185.2621.16467767
  Visual Studio: Not Found
Languages:
  Java:
    version: 17.0.20.1
    path: C:\Program Files\Microsoft\jdk-17.0.20.101-hotspot\bin\javac.EXE
  Ruby: Not Found
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 19.2.3
    wanted: 19.2.3
  react-native:
    installed: 0.86.3
    wanted: 0.86.3
  react-native-windows: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: Not found
  newArchEnabled: Not found
iOS:
  hermesEnabled: Not found
  newArchEnabled: Not found

The workflow itself runs on GitHub Actions' ubuntu-latest; the block above is the machine reproduce.sh ran on.

Steps to reproduce

  1. Open any issue. The workflow's issues: opened trigger starts Auto Triage, and its "Run Claude triage" step fails; its workflow_dispatch input starts the same run.
  2. To read the runs without opening an issue, clone the reproducer branch, which is main at df32ce3 with one file added, reproduce.sh, and run it with gh signed in:
    git clone --branch repro/auto-triage-oauth-token https://github.com/YevheniiKotyrlo/react-native-css
    cd react-native-css
    ./reproduce.sh
    It ends with one line: DEFECT: … and exit status 1 while the latest completed run fails for want of a token, FIXED: … and 0 once it succeeds, ERROR: … and 2 when gh is not signed in, no run has completed, or the run fails another way.

reproduce.sh:

#!/usr/bin/env bash
# Reads the secret auto-triage.yml hands its triage step, how the repository's Auto Triage runs ended, and why the latest one did.
# Exits 1 while the latest completed run fails for want of ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN, 0 once it succeeds, and 2
# when a step before the check fails or that run ends another way.
set -uo pipefail

repository=nativewind/react-native-css
workflow=.github/workflows/auto-triage.yml
missing_token="Either ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN is required when using direct Anthropic API."

verdict() {
  printf '%s\n' "$2"
  exit "$1"
}

system=$(uname -sr) || verdict 2 "ERROR: uname failed"
gh_version=$(gh --version) || verdict 2 "ERROR: gh is not on PATH"
revision=$(git rev-parse --short HEAD) || verdict 2 "ERROR: this is not a git checkout"
echo "System: $system, ${gh_version%%$'\n'*}, react-native-css $revision"

gh auth status > /dev/null 2>&1 || verdict 2 "ERROR: gh is not signed in, so the runs cannot be read"
grep -n -E "ANTHROPIC_API_KEY|CLAUDE_CODE_OAUTH_TOKEN" "$workflow" || echo "$workflow names neither token"
last_change=$(git log -1 --format="%h %cs" -- "$workflow") || verdict 2 "ERROR: git log cannot read $workflow's history"
echo "last change to the workflow in this checkout: $last_change"

runs=$(gh run list --repo "$repository" --workflow auto-triage.yml --limit 500 --json conclusion,createdAt \
  --jq 'group_by(.conclusion)[] | "\(.[0].conclusion): \(length) runs, \(map(.createdAt) | min) to \(map(.createdAt) | max)"') ||
  verdict 2 "ERROR: gh could not list the Auto Triage runs"
printf '%s\n' "$runs"

latest=$(gh run list --repo "$repository" --workflow auto-triage.yml --status completed --limit 1 --json databaseId,conclusion \
  --jq '.[] | "\(.databaseId) \(.conclusion)"') || verdict 2 "ERROR: gh could not read the latest Auto Triage run"
[ -n "$latest" ] || verdict 2 "ERROR: the repository has no completed Auto Triage run"
run=${latest%% *}
conclusion=${latest#* }
echo "== run $run: $conclusion"
case $conclusion in
  success) verdict 0 "FIXED: the latest completed Auto Triage run, $run, succeeded" ;;
  failure) ;;
  *) verdict 2 "ERROR: the latest completed Auto Triage run, $run, ended $conclusion" ;;
esac
log=$(gh run view "$run" --repo "$repository" --log-failed) || verdict 2 "ERROR: gh could not read run $run's failed steps"
grep -E "ANTHROPIC_API_KEY:|CLAUDE_CODE_OAUTH_TOKEN:|is required|##\[error\]" <<< "$log" | cut -f3-
if grep -q -F "$missing_token" <<< "$log"; then
  verdict 1 "DEFECT: Auto Triage fails for want of a token: its latest completed run, $run, ended with \"$missing_token\""
fi
verdict 2 "ERROR: the latest completed Auto Triage run, $run, failed another way"

Expected: the triage step starts with a token and labels the issue, and the run succeeds, with the workflow's trigger and steps as they are. The script then ends with FIXED: the latest completed Auto Triage run, <run>, succeeded and exits 0.

Actual: the step fails with Either ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN is required when using direct Anthropic API., and every run since 2026-09-09 has ended in failure; the script ends with this line and exits 1:

DEFECT: Auto Triage fails for want of a token: its latest completed run, 42069410964, ended with "Either ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN is required when using direct Anthropic API."
The run's output on main at df32ce3, Windows 11, gh 2.103.3
System: MINGW64_NT-10.0-26300 3.6.10-5a1665c8.x86_64, gh version 2.103.3 (2026-10-26), react-native-css 5b3f27b
15:#   - CLAUDE_CODE_OAUTH_TOKEN: OAuth token from `claude setup-token` (Max subscription)
70:          claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
last change to the workflow in this checkout: b5f2a4d 2026-04-16
failure: 60 runs, 2026-09-09T17:16:25Z to 2026-11-05T16:55:14Z
success: 18 runs, 2026-04-17T01:13:05Z to 2026-08-19T13:31:10Z
== run 42069410964: failure
2026-11-05T16:55:55.2456895Z   ANTHROPIC_API_KEY: 
2026-11-05T16:55:55.2457078Z   CLAUDE_CODE_OAUTH_TOKEN: 
2026-11-05T16:55:55.3007550Z ##[error]Action failed with error: Error: Environment variable validation failed:
  - Either ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN is required when using direct Anthropic API.
2026-11-05T16:55:55.3021870Z ##[error]Process completed with exit code 1.
DEFECT: Auto Triage fails for want of a token: its latest completed run, 42069410964, ended with "Either ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN is required when using direct Anthropic API."

Reproducible example repository

https://github.com/YevheniiKotyrlo/react-native-css/tree/repro/auto-triage-oauth-token

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions