Login Issues
Login problems are often not pure UI problems. They are usually an identity or token-shape mismatch.
Fast debug order
Check these in order:
- confirm you are in the right Clerk app
- confirm
.env.localpoints at that same Clerk app - confirm the JWT template is named exactly
convex - confirm the template issuer matches the Clerk frontend API domain
- restart the app after changing auth values
Symptom: sign-in looks fine, but protected reads fail
That usually means the browser session exists, but the server-side Clerk -> Convex read path is broken.
Start with:
- the
convextemplate name - the issuer/domain match
- the current Clerk app and browser session
Symptom: the server allows the route, but the browser throws Unauthorized
That is a different class of issue.
It usually means the initial server read succeeded, but a client-side Convex subscription started before Clerk finished syncing auth to the browser runtime.
Check:
- whether the error says
Called by client - whether the user already has the expected product-access row
- whether the page starts from server-fetched initial data before live queries resume
Symptom: the workspace gate cannot tell who you are
This usually means one of two things:
- auth is broken before product access is even checked
- you are signed into the wrong Clerk app or wrong browser account
What success looks like
Login is healthy when sign-in works, protected routes can read viewer state, and access checks reflect the right account.
Last updated on