Skip to content

preflight manifest/permissions hangs after TypeError on macOS arm64 #89

Description

@flutterrausch

Thanks for building GPC. It has been very useful for getting a Play release flow wired up from scripts.

I hit a reproducible hang in the offline preflight scanner on macOS arm64 with GPC 0.9.88. The command prints a TypeError, but then does not exit; I have to kill it from a wrapper timeout.

Environment:

  • GPC: 0.9.88
  • Install: Homebrew
  • Platform: macOS 26.5.1, Darwin arm64
  • Shell: zsh
  • Auth/config: I did not run gpc config init; auth is provided by env/service-account file. Authenticated commands such as gpc doctor and gpc validate <same-aab> --track internal work. The affected manifest and permissions preflight commands are offline scanners, so this does not appear to be an auth failure.

Minimal repro:

gpc preflight manifest build/app/outputs/bundle/release/app-release.aab --fail-on error

Also hangs:

gpc preflight permissions build/app/outputs/bundle/release/app-release.aab --fail-on error
gpc preflight build/app/outputs/bundle/release/app-release.aab --metadata stores/playstore/metadata --source . --fail-on error

Output before the hang:

✦ First time? Run gpc config init to get set up.

TypeError: null is not an object (evaluating 'self2.context.fd')
      at <anonymous> (/$bunfs/root/gpc-darwin-arm64:3349:29)
      at pendGo (/$bunfs/root/gpc-darwin-arm64:3301:7)
      at onCb (/$bunfs/root/gpc-darwin-arm64:3290:15)
      at <anonymous> (/$bunfs/root/gpc-darwin-arm64:3316:11)
      at <anonymous> (node:fs:194:82)

What I expected:

  • The manifest/permissions scanner should either complete or exit non-zero after the TypeError.

What happens:

  • The command stays running until killed. I reproduced this with a 45s timeout.

Extra isolation:

  • gpc preflight metadata stores/playstore/metadata --fail-on error returns normally.
  • gpc preflight codescan . returns normally.
  • gpc validate <same-aab> --track internal returns normally.

Current workaround:

  • I wrapped preflight in a shell timeout and treat timeout as a validation failure.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions