Finish pairing (replaces this binding)
vaultbeat_poll_bindingChecks whether the user scanned the QR code and authorized the server, returning pending, bound, or expired. Use it to decide whether to keep polling or stop and start a new binding.
Instructions
Check whether the user has scanned the QR code and authorized this server.
Call this after vaultbeat_start_binding. THREE possible status values:
· "pending" — the pairing is alive and simply has not been scanned yet.
Keep polling with short delays.
· "bound" — success. The server can now decrypt health data.
· "expired" — TERMINAL. Stop polling; no amount of retrying recovers it.
Run uvx vaultbeat-apple-health bind for a fresh QR code.
🔴 "pending" is positive evidence that nothing is wrong. The endpoint looks the pairing row up by pollID and answers "expired" when it is gone, so a long run of "pending" means the row is still there and nobody has scanned — NOT that it went stale while you waited.
That distinction decides what you tell the user, and getting it backwards
is destructive: re-running bind mints a NEW pollID, which invalidates
the QR they are looking at — so "just run bind again" turns a pairing
that was one scan away from working into one that cannot complete. Only
do it on "expired".
So while it stays "pending", the useful action is to get the code scanned, not to restart anything. Connecting is open on every plan, so there is no tier to check; the scanner is at Settings → Data & AI → "Connect an AI server". Do not send them to check the network, reinstall this server, or run diagnostics — none of those are implicated.
If they cannot see a QR code at all, it is your output that failed, not
their phone — see vaultbeat_start_binding.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||