Skip to content

v0.13.0: keyring backend hangs indefinitely on macOS — all auth-requiring commands SIGKILL'd (rollback to v0.12.0 restores) #513

@sardoru

Description

@sardoru

Bug: v0.13.0 keyring backend hangs indefinitely on macOS (commands SIGKILL'd)

After upgrading from v0.12.0 → v0.13.0 via brew upgrade steipete/tap/gogcli, every command that touches the keyring hangs indefinitely and is eventually killed with SIGKILL. This includes gog auth list, gog gmail search, gog gmail autoreply, etc. — any command that needs to read stored OAuth tokens.

Rolling back to v0.12.0 (same OAuth tokens in the macOS Keychain) restores full functionality instantly.

Reproduction

  1. Upgrade: brew upgrade steipete/tap/gogcli (from v0.12.0 → v0.13.0)
  2. Run any auth-requiring command:
    gog auth list
    gog gmail search -a me@example.com "newer_than:1h" --max 5
    
  3. Command hangs. After 10–60s, exits with SIGKILL (no output, no prompt, no error message). No macOS Keychain prompt appears.
  4. gog --version works fine (no keyring access needed).
  5. Also tested --no-input flag — same hang.

What I tried

  • gog auth list --no-input → hangs, SIGKILL
  • GOG_KEYRING_BACKEND=file gog auth list → returns instantly with "No tokens stored" (file backend works, but the tokens are in macOS Keychain, so this isn't a fix)
  • Flag --keyring-namespace rejected with "unknown flag" (release notes mention keyring namespace overrides landed in v0.13.0 — the flag name may have changed?)
  • Checked release notes for breaking changes around keyring/auth — didn't find anything explicit for macOS

Rollback

Installing v0.12.0 from tap git history restored full functionality:

cd $(brew --repository)/Library/Taps/steipete/homebrew-tap
git show 7a44daf:Formula/gogcli.rb > /tmp/gogcli-0.12.rb
brew uninstall gogcli
cp /tmp/gogcli-0.12.rb Formula/gogcli.rb  # temporarily pin
brew install steipete/tap/gogcli

Exact same OAuth tokens in Keychain, exact same accounts (info@booklocal.in, lease@membnb.com) — gog auth list on v0.12.0 returns in < 1 second. Upgrade to v0.13.0 → hang. Revert to v0.12.0 → works again.

Environment

  • macOS: 15.3.1 (build 24D70) — Apple Silicon (arm64)
  • gogcli: v0.13.0 (5cd913e 2026-04-20T22:14:47Z) — installed via brew install steipete/tap/gogcli
  • Shell: zsh
  • Keyring backend setting: auto (default, per gog --help output)

Hypothesis

The "keyring namespace overrides" refactor in v0.13.0 (#463) may have changed how the auto keyring backend probes macOS Keychain, possibly waiting on a prompt that never surfaces in non-TTY contexts (or maybe always, given this fails in interactive shell too).

What would help

  1. A --keyring-backend file flag or GOG_KEYRING_BACKEND=file support that gracefully migrates existing tokens from macOS Keychain → file on first use
  2. Or a debug/verbose flag that surfaces the keyring operation being attempted (so we can see where the hang is)
  3. Or fix the auto backend to not hang on macOS when Keychain interaction is needed non-interactively

Happy to provide additional logs/traces if useful — just let me know what would help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions