How to fix BaseBuddy sign-in return issues
Troubleshoot local password sign-in, invite return paths, stale callback links, and production app-data storage.
Use this when sign-in starts, but the browser returns to the wrong place or lands back on login with an error.
Current BaseBuddy installs use local password sessions stored in app data.
Match the symptom
| Symptom | What to check first |
|---|---|
| Password sign-in fails | User exists in app data and password is correct |
| Sign-in works locally but fails in production | Production can read and write the same app data |
| Invite sign-in opens Projects | Invite is fresh, recipient used the invited email, and the internal return path was preserved |
Browser opens /login?error=auth_callback_error | An old OAuth callback URL was opened |
Browser opens /login?error=email_confirm_error | An old email confirmation URL was opened |
Confirm local auth is ready
Run:
shpnpm basebuddy doctor --skip-db-checkThe App data, Owner account, and Environment values sections should be ready.
If the user is missing, create one:
shpnpm basebuddy user:create \
--email "editor@example.com" \
--name "Editor" \
--password "choose-a-strong-password"Confirm the return path is internal
BaseBuddy accepts internal paths after sign-in:
text/projects
/invite/<token>External return URLs are rejected and BaseBuddy falls back to Projects.
For invite issues:
- Send a fresh invite.
- Ask the recipient to open it on the intended BaseBuddy domain.
- Ask them to sign in with the same email address used on the invite.
- Keep the invite and sign-in flow in the same browser.
Fix production-only failures
If login works locally but not in production, production may be missing live app data or using ephemeral storage. Confirm the deployment can read and write the selected app-data backend.
After moving or restoring app data, restart the app and rerun:
shpnpm basebuddy doctorRetest
Use a private browser window:
- Open
/login. - Sign in with email and password.
- Confirm the browser opens
/projects. - Test one fresh invite if invite return paths were failing.
For setup diagnostics, use How to fix failed setup checks.