Skip to main content

How does automatic re-authentication work?

When you link credentials to a connection, Kernel monitors the login session and re-authenticates automatically when it expires. Periodic health checks detect logged-out sessions and trigger re-auth in the background, so the profile stays logged in without additional action on your part.
Automatic re-authentication only works when the stored credentials are complete and don’t require human input. If login needs SMS/email OTP, push notifications, or manual MFA selection, you’ll need to trigger a new login session manually.

How often are health checks performed?

Health checks run on regular cadences. The default intervals are the minimum for each plan — you can always set a longer (less frequent) interval if you’d like:
  • Hobbyist: every 1 hour minimum
  • Start-Up: every 20 minutes minimum
  • Enterprise: every 5 minutes minimum

How do I know if a Kernel can automatically re-authenticate a connection?

Check the can_reauth field on a connection. This boolean checks the following conditions:
  1. Credential linked — A credential must be attached to the connection (stored in Kernel or via an external provider like 1Password)
  2. No external action required — The learned login flow doesn’t require human intervention
Only if all of the above conditions are met will can_reauth be true. When true, Kernel will attempt to automatically re-authenticate the connection.

External actions that prevent auto-reauth

After a successful login, Kernel saves the login flow. If the flow includes steps that require human action—like SMS/email OTP, push notifications, or manual MFA selection—Kernel marks the connection as unable to auto-reauth because those steps can’t be automated without user input. If your login flow requires one of these, you can still automate around it:
  • Switch to TOTP — If the site supports authenticator apps, add a totp_secret to your credential. TOTP codes are generated automatically, so the login flow won’t require external action.
  • Trigger manual re-auth — Start a new login session and route the user through the Hosted UI or Programmatic flow.

What are sign-in options?

Sign-in options are non-MFA choices that some sites present during login, such as account pickers (“Which account do you want to use?”) or organization selectors. Unlike MFA options which are security challenges, sign-in options are informational choices that route the login flow. They appear in the session state as sign_in_options and are submitted via sign_in_option_id. See the Programmatic flow guide for details and SDK examples.

Which authentication methods are supported?

Managed Auth supports username/password authentication and most SSO providers.
Passkey-based authentication (e.g., Google accounts with passkeys enabled) is not currently supported. If a user’s SSO provider requires a passkey, the login will fail with the unsupported_auth_method error code.

What happens if login fails?

If a login attempt fails, Kernel will retry with exponential backoff. After multiple failures, the login flow will be marked as failed and you’ll receive an error with a specific error code. Common codes include credentials_invalid, bot_detected, and captcha_blocked. See the API reference for the full list of error codes. Common failure reasons include:
  • Invalid credentials
  • Bot detection blocking the login page
  • CAPTCHAs that couldn’t be solved

Can I use Managed Auth with any website?

Managed Auth works with most websites. Sites with aggressive bot detection may require additional configuration (stealth mode, proxies). Passkeys and hardware security keys are not currently supported.

Is Managed Auth available during a trial?

Yes. Managed Auth and browser profiles are available during your trial period with the same capabilities as the plan you’re trialing.

How do I re-authenticate a connection before the next health check?

Call .login() on any connection at any time to trigger authentication immediately. If the profile is already logged in, it returns quickly without starting a new flow. If the connection needs auth, it starts a new login session. This is useful when your workflow needs to ensure a connection is authenticated right now, without waiting for the next scheduled health check.
const state = await kernel.auth.connections.retrieve(auth.id);

if (state.status === 'NEEDS_AUTH') {
  const login = await kernel.auth.connections.login(auth.id);
  // Handle login flow as usual
}

What types of flows does Managed Auth support?

Managed Auth is designed for login and authentication flows — entering credentials, handling SSO redirects, completing MFA challenges, and maintaining sessions. For other browser interactions like form filling, sign-ups, or multi-step workflows, use Kernel’s browser automation directly.

How is Managed Auth billed?

Managed Auth is included on all paid plans with no per-connection fees. It uses browser sessions to log in and keep your sessions fresh—these count toward your browser usage like any other browser session. Auth sessions are fast (typically 5-30 seconds each). Kernel monitors session health and re-authenticates automatically when sessions expire—most stay valid for days. For example, keeping 100 auth connections logged in typically costs less than $5/month in browser usage. See Pricing & Limits for details.