macOS draws the passkey prompt as a window-modal sheet whose contents come from a separate system process. If that process dies, the sheet stays attached with a dead content view: Escape and Cancel do nothing, and every tab in the window is blocked until the browser is killed.
The iCloud Keychain path needs the
com.apple.developer.web-browser.public-key-credential entitlement,
which chrome/BUILD.gn only adds for branded builds. Part 1 needs
released Chrome (entitlement, no fix). Part 2 needs a branded patched build. A
plain local Chromium never shows this sheet.
pkill -9 -f "AuthenticationServices.Helper|LocalAuthenticationRemoteService"chrome://device-log in a second window and wait, up to two minutes.
iCKC: getAssertion failed, domain: com.apple.ViewBridge code: 17
Failing assertion request due to status 3 from iCloudKeychain
pkill -9 -f "AuthenticationServices.Helper|LocalAuthenticationRemoteService"chrome://device-log, same two minute wait.
iCKC: getAssertion failed, domain: com.apple.ViewBridge code: 17
iCKC: system UI terminated leaving an unresponsive sheet attached; detaching it
| After killing the helper | Unpatched | Patched |
|---|---|---|
| Escape / Cancel on the sheet | Nothing | Nothing |
| When the ViewBridge error arrives | Sheet stays, window blocked | Sheet detaches, window usable |
| Stuck for | Until the browser is killed | About two minutes |
| Manual recovery | Second kill from a terminal | None |
A patched build does not dismiss instantly. Chromium only learns the system UI died when the delegate reports the error.
23:16:28 Starting GetAssertion flow rpId=github.com timeout=180000
23:16:28 UI step: kPlatformAuthenticator <- sheet presented
23:16:43 USB/HID added: YubiKey OTP+FIDO+CCID <- enumerated while sheet up
23:16:56 [screenshot above, sheet already dead]
23:18:43 iCKC: getAssertion failed, domain: com.apple.ViewBridge code: 17
23:18:43 Failing assertion request due to status 3 from iCloudKeychain
23:18:54 iCKC: getAssertion completed <- retry succeeds
23:18:54 UI step: kClosed
23:30 helpers killed by hand, sheet disappears
Chromium cleaned up, ran a second assertion successfully and closed its UI at
23:18:54. The dead sheet was still on screen eleven minutes later. Note
status 3 is kUserConsentDenied: the site was told the
user declined.