Description
When using signIn.ticket({ ticket }) from useSignIn() (Core 3 / @clerk/nextjs v7) with a sign-in token generated via the Backend API (POST /v1/sign_in_tokens), the method returns { error: null } but signIn.status remains at "needs_identifier" instead of progressing to "complete". This prevents calling signIn.finalize() which requires a completed sign-in.
Expected behavior
After signIn.ticket({ ticket: validToken }) returns without error, signIn.status should be "complete" and signIn.createdSessionId should be set, per the SignInFuture docs.
Actual behavior
signIn.ticket() result: { result: undefined, error: null }
signIn.status: "needs_identifier"
signIn.createdSessionId: null
The sign-in silently fails to complete. No error is returned.
Reproduction
- Create a sign-in token via Backend API:
POST /v1/sign_in_tokens with { user_id, expires_in_seconds }
- On a Next.js page, use the token:
const { signIn, fetchStatus } = useSignIn();
const { error } = await signIn.ticket({ ticket: token });
console.log(error); // null
console.log(signIn.status); // "needs_identifier" — should be "complete"
Workaround
Using signIn.create({ strategy: 'ticket', ticket }) + setActive() (Core 2 API) works correctly — the sign-in completes and signInAttempt.status is "complete".
Environment
@clerk/nextjs: 7.0.1
@clerk/react: 6.0.1
@clerk/shared: 4.0.0
- Next.js: 16.1.6
- React: 19.2.4
Additional context
Clerk AI support confirmed this behavior is inconsistent with the documented behavior and that signIn.status should reach "complete" after a successful ticket() call.
Description
When using
signIn.ticket({ ticket })fromuseSignIn()(Core 3 /@clerk/nextjsv7) with a sign-in token generated via the Backend API (POST /v1/sign_in_tokens), the method returns{ error: null }butsignIn.statusremains at"needs_identifier"instead of progressing to"complete". This prevents callingsignIn.finalize()which requires a completed sign-in.Expected behavior
After
signIn.ticket({ ticket: validToken })returns without error,signIn.statusshould be"complete"andsignIn.createdSessionIdshould be set, per the SignInFuture docs.Actual behavior
The sign-in silently fails to complete. No error is returned.
Reproduction
POST /v1/sign_in_tokenswith{ user_id, expires_in_seconds }Workaround
Using
signIn.create({ strategy: 'ticket', ticket })+setActive()(Core 2 API) works correctly — the sign-in completes andsignInAttempt.statusis"complete".Environment
@clerk/nextjs: 7.0.1@clerk/react: 6.0.1@clerk/shared: 4.0.0Additional context
Clerk AI support confirmed this behavior is inconsistent with the documented behavior and that
signIn.statusshould reach"complete"after a successfulticket()call.