API Issues
”401 Unauthorized” errors
Symptom: API requests return401 Unauthorized
Solutions:
- Check your API key: Ensure
X-API-Keyheader is set correctly - Verify the key exists: Generate a new key in Dashboard → Settings → API
- Check for typos: Copy the key directly from dashboard, don’t type it
- Environment variables: Ensure
KODO_API_KEYis exported in your shell
”429 Too Many Requests” errors
Symptom: API requests return429 after many calls
Solutions:
- Check rate limit headers in response:
- Implement exponential backoff in your code
- Cache responses where appropriate
- Upgrade plan for higher limits
Monitoring Issues
Uptime monitor showing false positives
Symptom: Monitor reports “down” when your service is actually working Causes & Solutions:-
Firewall blocking Kodo IPs
- Whitelist Kodo’s monitoring IPs (see Dashboard → Settings → Monitoring)
- Or use a different URL that’s publicly accessible
-
Timeout too aggressive
-
Geographic routing issues
- Enable multi-region checks (requires failure from 2+ regions)
- This prevents false positives from single-region network issues
-
Rate limiting your endpoint
- Ensure your service allows the check interval you’ve configured
- Don’t rate-limit Kodo’s User-Agent
Heartbeat showing missed when job ran
Symptom: Cron job executed but heartbeat shows as missed Causes & Solutions:-
Heartbeat sent after expected interval
-
Network timeout during heartbeat send
-
Wrong timezone in cron configuration
- Ensure cron server and Kodo use same timezone (or both UTC)
SSL monitor not detecting expiration
Symptom: Certificate expired but no alert received Solutions:-
Check alert threshold: Default is 30 days. If cert expires sooner, you won’t get alerts
- Verify notification channels: Ensure channel is enabled and tested
- Check spam folders: SSL alerts might be filtered
Notification Issues
Slack notifications not arriving
Symptom: Incidents created but no Slack message Solutions:-
Test the channel
-
Check webhook URL
- Ensure Slack webhook URL is still valid
- Recreate webhook in Slack if organization changed settings
-
Verify event filters
- Check if channel is configured to receive the event type
- Dashboard → Notifications → Edit Channel → Events
-
Check Slack channel permissions
- Ensure the webhook can post to the target channel
Webhooks failing
Symptom: Webhook shows “failed” in delivery history Check delivery logs:-
Timeout: Your endpoint takes too long
- Kodo waits 30 seconds max
- Return 200 immediately, process async
-
SSL errors: Your endpoint has invalid certificate
- Ensure valid SSL on your webhook URL
-
Authentication failing: Your endpoint requires auth
- Add auth headers to webhook config:
-
Wrong response code: Your endpoint returns non-2xx
- Kodo expects 200-299 for success
- Check your server logs
Status Page Issues
Custom domain not working
Symptom: Custom domain shows error or wrong page Solutions:-
Verify DNS
- Wait for propagation: DNS can take up to 48 hours
-
Check SSL provisioning
- Dashboard → Settings → Custom Domain
- SSL should show “Active”
- If “Pending”, wait or click “Retry”
- Clear browser cache: Try incognito/private mode
Widget not loading
Symptom: Status widget shows blank or error Solutions:-
Check CSP headers
-
Verify API key in widget config
- Check browser console for errors
Beacon/Error Tracking Issues
Errors not appearing in dashboard
Symptom: Beacon installed but no errors showing Solutions:-
Verify initialization
-
Check for filtering
-
Test with manual error
- Check environment: Development errors may be filtered by default
Source maps not resolving stack traces
Symptom: Stack traces show minified code, not original Solutions:-
Verify upload succeeded
-
Check URL matches
- Uploaded URL must exactly match error URL
- Including protocol (https://) and path
-
Ensure release matches
- Beacon release must match sourcemap release
CLI Issues
”Command not found: kodo”
Solutions:-
Reinstall globally
-
Check PATH
-
Use npx
CLI not authenticated
Symptom: “Not authenticated” errors Solutions:Still Stuck?
When reporting issues, include:- Error messages (full text)
- API response bodies
- CLI version (
kodo --version) - Steps to reproduce