The settled registration (ready or failed).
Calls getQuestion every pollIntervalMs until status is ready
or failed and returns that state; a failed question is returned, not
thrown, so the caller can read error and decide whether to
recomputeQuestion. All polls share the one write session and each
signs its own proof.
const settled = await waitForQuestion({
personalServerUrl,
signer,
grantId,
questionId: registered.questionId,
timeoutMs: 60_000,
});
if (settled.status === "ready") {
// read derivedScope
}
Whatever getQuestion throws, and the signal's abort
reason when the caller aborts.
Poll a question until it settles.