1Password credential-request (Claude in Chrome) fails with 'not_connected' despite healthy 1Password app/extension

Status Open
Maintainer reply None cached
Activity 3 comments · opened Jul 22, 2026

Summary

The "Claude in Chrome" credential-request integration with 1Password consistently fails with a "not_connected" / "Couldn't connect to 1Password. Check that it's open, then try again." error, even though the 1Password desktop app and browser extension are both confirmed healthy and unlocked.

Environment

  • macOS
  • 1Password for Mac: was on 8.12.26, updated to 8.12.28 (current stable) during troubleshooting — no change in behavior
  • 1Password browser extension: installed, unlocked, and fully functional (confirmed by manually opening the extension popup and browsing vault items while the bug was occurring)
  • Claude in Chrome: extension installed and connected (confirmed via the MCP's own list_connected_browsers, which reports the browser as connected)

Steps to reproduce

  1. Ask Claude (via Claude Code / Claude in Chrome) to sign into a website using saved 1Password credentials, triggering the credential-request tool.
  2. The "Claude needs credentials to continue — Connect 1Password" banner appears.
  3. Click "Connect 1Password" and approve in the 1Password app.
  4. Banner returns: "Couldn't connect to 1Password. Check that it's open, then try again."

Troubleshooting already performed (all unsuccessful)

  • Fully quit and relaunched 1Password (not just closed the window)
  • Restarted Claude Code
  • Updated 1Password from 8.12.26 to 8.12.28 (latest stable)
  • Verified list_connected_browsers shows an active, local browser connection
  • Verified the 1Password browser extension itself is unlocked and functional by manually browsing vault items in its popup
  • Tested against multiple, unrelated target sites (an internal company dashboard and github.com) — identical failure both times, ruling out a site-specific cause
  • The failure occurs at the initial "connect" step, before any site-specific autofill is attempted

Expected behavior

Clicking "Connect 1Password" and approving in the 1Password app should establish the connection so credential requests can proceed.

Actual behavior

Connection consistently fails with "Couldn't connect to 1Password. Check that it's open, then try again," regardless of app restarts, updates, or target site — despite every other layer of the stack (1Password app, 1Password browser extension, Claude-in-Chrome browser connection) being independently verified as healthy.

Notes

  • Separately, direct 1Password CLI access (op with a service account token) works perfectly from Claude Code's terminal — so this appears isolated to the Claude-in-Chrome ↔ 1Password extension credential-request bridge specifically, not a general 1Password installation problem.
  • Filing here per Claude Code's documented feedback channel; redirect to the appropriate team if this bug belongs elsewhere (Claude in Chrome / claude.ai).

View original on GitHub ↗

3 Comments

ksato-tech · 2 months ago

Same issue here — sharing my environment and some extra debugging detail in case it helps.

Environment

  • macOS (Darwin 25.5.0), Apple Silicon
  • Claude desktop app 1.24012.9 (Max plan)
  • Claude in Chrome extension 1.0.81 (current Web Store version), signed in to the same account as the desktop app
  • 1Password for Mac 8.12.28, unlocked; 1Password Chrome extension 8.12.28.25 in the same Chrome profile
  • 1Password extension setting "Integrate with the 1Password desktop app" = ON, integration status: connected
  • Claude Settings > Connectors shows 1Password as connected (Desktop); 1Password's settings.json contains the appPairing.agenticAutofill.pairedApps record for com.anthropic.claudefordesktop

Symptom

  • From a Claude Code session, request_credentials always returns {"status":"transport_error","reason":"relayUnavailable"} (fails within ~1 second, ~10+ attempts over 2 days).
  • From a Cowork task (the officially documented test path), the credential request fails with local_browser_unavailable at the login page.
  • Disconnect/reconnect of the connector, Chrome restart, Claude app restart, and a full macOS reboot did not change anything. op desktop integration and normal 1Password autofill work fine.

Debugging detail that may help

  • Claude's main.log shows [grand-prix] credential request dispatch followed immediately by ext request settled { status: 'transport_error' } on every attempt.
  • 1Password's log shows its agentic-autofill local HTTP server listening and a mycelium channel being created/joined at Claude session start, so the 1Password side appears healthy.
  • The Claude in Chrome extension's local storage contains no partner extension IDs (nothing matching the 1Password extension ID aeblfdkhhhdcdjpifhhbdiojplfjncoa), which looks consistent with the relay failing with no_target — as if the partner extension-ID config pushed via pushExternalConfig never arrives for this account/surface.

Happy to provide more logs if useful.

anandman · 1 month ago

Confirming this on a current stack, and independently reproducing @ksato-tech's missing-partner-ID finding — still present nine extension versions later. Flagging because the issue is marked stale but reproduces on current versions of everything.

Environment

  • Claude desktop app 1.44121.4 (Electron 42.10.0); Cowork session linked to a local Mac
  • macOS 26.4.1, Apple Silicon
  • Chrome 152.0.7977.77; Claude in Chrome extension 1.0.90
  • 1Password desktop app and Chrome extension installed in the same profile, healthy throughout

Symptom

Matches the local_browser_unavailable variant @ksato-tech reports from Cowork. Both request_credentials and list_granted_credentials return {"status":"unavailable","reason":"local_browser_unavailable"}. No consent prompt is ever displayed, so this fails earlier than #87365 (where consent succeeds and only the fill fails).

Pairing is not the failing half. Before approving the Connect banner the call returned not_connected with actionable text. Immediately after approving, every call returns local_browser_unavailable. The handshake lands; everything downstream of it fails.

Identical result across every configuration tested:

  • the desktop app's built-in Browser pane
  • Claude in Chrome, remote machine's browser selected
  • Claude in Chrome, local machine's browser selected (verified genuinely local via AppleScript — see #78096)
  • after a fresh switch_browser re-pair handshake

With Chrome fully closed the error changes to transport_error/decode, then transport_error/retryable on retry — which places the failure in the Chrome-extension relay rather than the desktop app.

Reproducing the missing partner extension ID on v1.0.90

Same check @ksato-tech describes, against the Claude extension's Local Extension Settings:

CL=fcoeoabgfenejglbffodgkkbkcdhcgfn
OP=aeblfdkhhhdcdjpifhhbdiojplfjncoa
strings "$HOME/Library/Application Support/Google/Chrome/Default/Local Extension Settings/$CL"/* | grep -c "$OP"

Result: 0.

Meanwhile strings … | grep -oiE 'partner[A-Za-z]*|externalConfig|agentic[A-Za-z]*' returns 14 hits, all agentic. So agentic-mode config is present but no partner extension ID accompanies it — consistent with the relay failing no_target.

Possible unifying reading

If the partner ID never reaches the Claude extension, 1Password is never told Claude is a partner. That would also explain #87365, where 1Password reports partnerCode: 'agenticModeNotEnabled' — each surface failing at whatever stage it happens to reach, from one missing piece of config.

Worth noting that nothing user-side moves this: re-pairing, restarting Chrome, restarting the app, switching browsers, and updating versions all leave it unchanged, which is consistent with config that is never delivered rather than config that is delivered and corrupted.

anandman · 1 month ago

Correction to my comment above — the root cause I proposed was wrong.

I attributed this to the missing 1Password partner extension ID, reading it as the relay failing no_target. That observation was real, but it is not what causes the failure: the credential request completes fine while that ID is still absent.

The actual cause is now filed as #91969. The consent prompt is dispatched to a Chrome window the user cannot see, so it renders unseen, is never answered, and lapses. Opening the Claude side panel reveals a separate "Claude for Chrome" window showing "Waiting for permission request..." — after which request_credentials returns {"status":"approved"} on the first attempt with no other changes.

That also accounts for the one detail I could not explain: retryable and decode alternating non-deterministically across identical calls. That is a single unanswered consent request timing out differently, not two distinct transport faults. Reading them as transport faults is what sent me looking at 1Password, which is healthy throughout.

Two further corrections to what I wrote here: the failure is not Cowork-specific — it reproduces in claude.ai web chat — and 1Password itself is not implicated at any point.

If you are stuck on this issue: open the Claude side panel before making the credential request. Please follow #91969 for the root cause.