StrikeHub uses OIDC (OpenID Connect) with Keycloak for authentication. This guide covers common auth-related issues.
OIDC flow doesn't complete
Symptom: The sign-in flow opens the browser but never redirects back, or StrikeHub never receives the token.
Possible causes:
STRIKE48_API_URLnot set — The environment variable must point to the Prospector Studio API server.- Redirect URI mismatch — The Keycloak client's allowed redirect URIs don't include StrikeHub's callback URL.
- Browser blocked the popup — Some browsers block the redirect back to
localhost.
Debugging:
# Verify the API URL is set
echo $STRIKE48_API_URL
# Run with auth tracing
RUST_LOG=sh_core::auth=debug cargo run --features desktop
Look for log lines like:
sh_core::auth: starting OIDC flow redirect_uri="http://localhost:..."
sh_core::auth: OIDC callback error err="..."
Tip: Check your Keycloak admin console to verify the client's Valid Redirect URIs include
http://localhost:*.
Token not injected into connector
Symptom: Authentication succeeds (you see the success page in the browser) but the connector UI shows "Not authenticated."
Possible causes:
- Connector loaded before auth completed — The iframe rendered before the token was available.
- Token injection script error — The
connector://protocol handler failed to inject the token into the HTML.
Debugging:
RUST_LOG=sh_core::auth=debug,sh_core::proxy=debug cargo run --features desktop
Look for:
sh_core::auth: token received, injecting into connector HTML
sh_core::proxy: serving connector html connector="kubestudio" token_injected=true
If token_injected=false, the auth flow may not have completed before the connector was loaded. Try refreshing the connector (click its sidebar entry again).
Keycloak server unreachable
Symptom: The sign-in button does nothing, or the browser shows a connection error.
Possible causes:
- The Keycloak server is down or unreachable from your network.
- DNS resolution failure for the Keycloak hostname.
- Firewall blocking outbound connections.
Debugging:
# Test direct connectivity
curl -v $STRIKE48_API_URL/.well-known/openid-configuration
# Check DNS
nslookup $(echo $STRIKE48_API_URL | sed 's|https\?://||' | cut -d/ -f1)
TLS certificate errors
Symptom: Auth fails with TLS/SSL errors in the logs.
Possible causes:
- Self-signed certificate on the Keycloak server.
- Expired certificate.
- Corporate proxy intercepting TLS.
Debugging:
For local development with self-signed certs:
MATRIX_TLS_INSECURE=true cargo run --features desktop
Caution: Never use
MATRIX_TLS_INSECURE=truein production. It disables certificate validation entirely. For production, ensure the CA certificate is installed in your system's trust store:
# Linux (Debian/Ubuntu)
sudo cp your-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
# macOS
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain your-ca.crt