BloopAI/vibe-kanban · critical
no OAuth providers configured
Error message
no OAuth providers configured
What it means
The remote server requires at least one authentication mechanism: either an OAuth provider (GitHub/Google) registered in the registry or a configured local auth fallback. run() refuses to start when both are absent, because no user could ever authenticate.
Source
Thrown at crates/remote/src/app.rs:77
let mut registry = ProviderRegistry::new();
if let Some(github) = auth_config.github() {
registry.register(GitHubOAuthProvider::new(
github.client_id().to_string(),
github.client_secret().clone(),
)?);
}
if let Some(google) = auth_config.google() {
registry.register(GoogleOAuthProvider::new(
google.client_id().to_string(),
google.client_secret().clone(),
)?);
}
if registry.is_empty() && auth_config.local().is_none() {
bail!("no OAuth providers configured");
}
let registry = Arc::new(registry);
let handoff_service = Arc::new(OAuthHandoffService::new(
pool.clone(),
registry.clone(),
jwt.clone(),
auth_config.public_base_url().to_string(),
));
let oauth_token_validator = Arc::new(OAuthTokenValidator::new(
pool.clone(),
registry.clone(),
jwt.clone(),
));
let loops_email_api_key = std::env::var("LOOPS_EMAIL_API_KEY")View on GitHub (pinned to 4deb7eca8f)
Solutions
- Configure at least one OAuth provider (set client id/secret env vars for GitHub or Google)
- Enable local auth in auth_config if OAuth is not desired
- Verify the config file section for auth providers is present and parsed
Example fix
// before # no providers set // after GITHUB_CLIENT_ID=iv1.xxxx GITHUB_CLIENT_SECRET=xxxx ./remote-server # or set local auth in the auth config
Defensive patterns
Strategy: validation
Validate before calling
let has_provider = std::env::var("GITHUB_CLIENT_ID").is_ok() || std::env::var("GOOGLE_CLIENT_ID").is_ok();
if !has_provider && auth_config.local().is_none() { return Err("configure at least one OAuth provider or local auth"); } Try / catch
match RemoteApp::run(...).await { Err(e) if e.to_string().contains("no OAuth providers configured") => eprintln!("Set GITHUB_CLIENT_ID/SECRET or GOOGLE_CLIENT_ID/SECRET"), other => other? } Prevention
- Check auth env vars in deployment startup scripts
- Document required provider env vars for new deployments
- Smoke-test login flow after each deploy
When it happens
Trigger: run() starts the remote app with no OAuth client id/secret set (GitHub and Google both absent) and auth_config has no local() auth configured.
Common situations: Fresh deployment missing GITHUB_CLIENT_ID/GITHUB_CLIENT_SECRET env vars; config file with providers commented out; operator assumed local auth was enabled by default.
Related errors
- Failed to load orchestrator MCP context from /api/containers
- error while building tauri application
- OAuth init failed (${res.status})
- OAuth redeem failed (${res.status})
- Failed to accept invitation (${res.status})
AI-assisted analysis of BloopAI/vibe-kanban@4deb7eca8f (2026-08-29).
Data as JSON: /api/errors/69980aab41527fed.
Report an issue: GitHub.