Troubleshooting
Quick solutions to common problems. Can't find your issue? Contact support.
Quick Fixes
Authentication Issues
"Invalid redirect_uri" error
Cause: The redirect URI in your code doesn't match the one configured in your OAuth client.
Solution:
- Go to Applications → Your App → Settings
- Check the Redirect URIs field
- Ensure it exactly matches your code (including trailing slashes)
// Must match exactly
redirectUri: 'https://yourapp.com/callback' // No trailing slashCORS error in browser
Cause: Your origin isn't in the allowed origins list.
Solution:
- Go to Applications → Your App → Settings
- Add your origin to Allowed Origins:
https://yourapp.com https://myapp.com
Token expired immediately
Cause: Clock skew between your server and Optare.
Solution:
- Sync your server clock with NTP
- Add a small
clockToleranceto token verification:jwtVerify(token, JWKS, { clockTolerance: 30 })
"User not found" after login
Cause: The user exists in one organization but you're querying another.
Solution:
- Check the
org_idclaim in the token - Ensure you're querying the correct organization
SDK Issues
OptareClient is not defined
Cause: Incorrect import.
Solution:
// ✅ Correct
import { OptareClient } from '@optare/optareid-js';
// ❌ Wrong
import OptareClient from '@optare/optareid-js';Module not found: '@optare/...'
Cause: Package not installed.
Solution:
npm install @optare/optareid-js @optare/optareid-reactTypeScript errors with hooks
Cause: Missing type definitions or wrong React version.
Solution:
npm install @types/react@18Configuration Issues
SAML SSO not working
Checklist:
- ☐ IdP Entity ID is correct
- ☐ SSO URL is correct (not logout URL)
- ☐ Certificate is valid X.509 format
- ☐ IdP has correct ACS URL configured
- ☐ Email attribute is mapped correctly
Webhooks not receiving events
Checklist:
- ☐ Endpoint returns 200 status
- ☐ Endpoint is publicly accessible (not localhost)
- ☐ Correct events are selected
- ☐ No firewall blocking requests
- ☐ Check webhook logs in dashboard
Custom domain not working
Checklist:
- ☐ CNAME record points to
custom.optare.one - ☐ DNS has propagated (check with
dig) - ☐ No CAA records blocking Let's Encrypt
- ☐ Domain is verified in console
Mobile Issues
Deep links not working (Flutter)
iOS: Check Info.plist has URL scheme:
<key>CFBundleURLSchemes</key>
<array>
<string>com.yourcompany.yourapp</string>
</array>Android: Check AndroidManifest.xml has intent filter:
<intent-filter>
<data android:scheme="com.yourcompany.yourapp" />
</intent-filter>Secure storage errors
Android: Ensure minSdkVersion is 23+:
android {
defaultConfig {
minSdkVersion 23
}
}iOS: Ensure Keychain sharing is enabled in Xcode.
Error Codes
| Code | Message | Solution |
|---|---|---|
AUTH_001 | Invalid credentials | Check email/password |
AUTH_002 | Token expired | Refresh the token |
AUTH_003 | Invalid token signature | Token tampered or wrong issuer |
AUTH_004 | Rate limited | Wait and retry |
ORG_001 | Organization not found | Check org slug |
ORG_002 | Not a member | User not in organization |
PERM_001 | Permission denied | User lacks required role |
Still Stuck?
- Check status: status.optare.one (opens in a new tab)
- Community: Discord (opens in a new tab)
- Email: support@optare.one
- Docs: Search above for your error