Skip to content

project-automation cannot create GitHub App token for FastLED project sync #2383

@zackees

Description

@zackees

Problem

The project-automation workflow is currently failing before it can sync issues/PRs to the project board.

Failing run/job:

The failure is not related to the PR code. The job fails in the Generate GitHub App token step before ci/github_project_sync.py runs.

Observed failure

actions/create-github-app-token@v1 is called from .github/workflows/project_automation.yml with:

app-id: ${{ vars.PROJECT_APP_ID }}
private-key: ${{ secrets.PROJECT_APP_PRIVATE_KEY }}
owner: ${{ vars.PROJECT_OWNER }}

Current repo variables observed through the Actions variables API:

  • PROJECT_APP_ID=3422407
  • PROJECT_OWNER=FastLED
  • PROJECT_NUMBER=1

The secret PROJECT_APP_PRIVATE_KEY exists and was last updated on 2026-04-18T15:41:00Z.

The workflow log shows:

repositories not set, creating token for all repositories for given owner FastLED
Failed to create token for FastLED (attempt 1): Not Found - https://docs.github.com/rest/apps/apps#get-a-user-installation-for-the-authenticated-app
...
RequestError [HttpError]: Not Found
request url: https://api.github.com/users/FastLED/installation

The same authentication pattern is also used by .github/workflows/project_drift_sync.yml, so the nightly/project backfill sync is likely affected too.

Likely cause

The GitHub App identified by PROJECT_APP_ID=3422407 is not currently installed on the FastLED organization, or PROJECT_APP_PRIVATE_KEY belongs to a different GitHub App than app ID 3422407.

A missing repo variable is unlikely: the job passes the variable guard, and the action receives app ID 3422407 and owner FastLED.

Fix checklist

An org/repo admin should verify:

  • GitHub App ID 3422407 still exists and is the intended project-sync app.
  • The private key stored in PROJECT_APP_PRIVATE_KEY was generated from that exact app.
  • The app is installed on the FastLED organization.
  • The app installation has access to the FastLED/FastLED repository, or all repositories if the workflow should keep requesting an owner-wide token.
  • The app has the permissions needed by ci/github_project_sync.py and ci/github_project_drift_sync.py, especially project access plus issue/PR metadata access.

Optional workflow hardening after the app is confirmed:

  • Consider updating actions/create-github-app-token@v1 to the current major version.
  • Consider scoping the token to the repository with repositories: FastLED if org-wide repository access is not required. The project sync may still need organization project permissions, so this should be tested against both event sync and drift sync.

Validation

After the app installation/key pairing is corrected, re-run the failed project-automation job or trigger a new issue/PR event. Then manually run project-drift-sync with workflow_dispatch to confirm the nightly sync path also generates a token successfully.

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