getting started

Troubleshooting

Common issues and how to resolve them

8 min read
Updated 2026-02-24

Troubleshooting Guide

Common issues and solutions for OpsCurb.


Connection Issues

❌ "Failed to assume IAM role"

Symptoms: Scan fails with "AssumeRole failed" error

Causes:

  1. IAM role doesn't exist
  2. External ID mismatch
  3. Trust policy incorrect
  4. Role ARN incorrect

Solutions:

1. Verify IAM role exists:

aws iam get-role --role-name OpsCurbRole

2. Check External ID:

  • Go to OpsCurb dashboard → Settings → AWS Accounts
  • Copy the External ID
  • Verify it matches the trust policy:
aws iam get-role --role-name OpsCurbRole --query 'Role.AssumeRolePolicyDocument'

3. Verify trust policy:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": {
      "AWS": "arn:aws:iam::123456789012:root"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "StringEquals": {
        "sts:ExternalId": "YOUR_EXTERNAL_ID"
      }
    }
  }]
}

4. Update role ARN:

  • Format: arn:aws:iam::YOUR_ACCOUNT_ID:role/OpsCurbRole
  • Verify account ID is correct

❌ "Access Denied" errors

Symptoms: Scan partially completes, some scanners fail

Cause: Missing IAM permissions

Solution:

1. Check IAM policy:

aws iam list-attached-role-policies --role-name OpsCurbRole

2. Verify permissions: Compare with our required permissions in terraform/main.tf

3. Update policy:

cd terraform/
terraform apply

4. Test specific permission:

# Test EC2 describe permission
aws ec2 describe-volumes --max-results 1

# Test RDS describe permission
aws rds describe-db-instances --max-records 1

❌ "Connection timeout"

Symptoms: Scan hangs or times out

Causes:

  1. AWS API throttling
  2. Network issues
  3. Large infrastructure

Solutions:

1. Check AWS service health:

2. Reduce scan scope:

  • Scan fewer regions
  • Exclude specific scanners
  • Increase timeout in settings

3. Retry the scan:

  • Wait 5-10 minutes
  • Run scan again

Scan Issues

❌ "No findings detected"

Symptoms: Scan completes but shows 0 findings

Possible reasons:

1. Your infrastructure is optimized! 🎉

  • This is good news!
  • Review scan details to confirm all scanners ran

2. Filters are too restrictive:

  • Check Settings → Preferences → Cost Thresholds
  • Lower minimum cost thresholds
  • Check region filters

3. Permissions issue:

  • Some scanners may have failed silently
  • Check scan logs for errors
  • Verify all IAM permissions

4. Scan still running:

  • Wait for scan to complete (typically 2-5 minutes)
  • Refresh the page

❌ "Scan failed"

Symptoms: Scan status shows "failed"

Solutions:

1. Check error message:

  • Click on the failed scan
  • Read the error details
  • Follow specific error guidance

2. Common errors:

ErrorSolution
"AssumeRole failed"See "Failed to assume IAM role" above
"Access Denied"See "Access Denied" above
"Timeout"Retry scan, reduce scope
"Invalid credentials"Update AWS credentials
"Region not enabled"Enable region in AWS or exclude from scan

3. Retry scan:

  • Click "Retry Scan"
  • Or run a new scan

❌ Scan takes too long

Symptoms: Scan runs for > 10 minutes

Causes:

  1. Large infrastructure (1000+ resources)
  2. Many regions enabled
  3. AWS API throttling

Solutions:

1. Optimize scan scope:

Settings → Scan Configuration
- Reduce number of regions
- Disable unused scanners
- Increase scan timeout

2. Schedule scans during off-peak:

  • Avoid peak AWS usage times
  • Schedule for nights/weekends

3. Contact support (Enterprise):

  • We can optimize scan performance
  • Dedicated scanning infrastructure available

Dashboard Issues

❌ Dashboard not loading

Symptoms: Blank page or loading spinner

Solutions:

1. Clear browser cache:

Chrome: Ctrl+Shift+Delete (Windows) or Cmd+Shift+Delete (Mac)
Firefox: Ctrl+Shift+Delete (Windows) or Cmd+Shift+Delete (Mac)
Safari: Cmd+Option+E (Mac)

2. Try incognito/private mode:

  • Chrome: Ctrl+Shift+N
  • Firefox: Ctrl+Shift+P
  • Safari: Cmd+Shift+N

3. Check browser console:

4. Try different browser:

  • We support Chrome, Firefox, Safari, Edge
  • Update to latest browser version

❌ "Session expired" errors

Symptoms: Logged out frequently

Solutions:

1. Enable cookies:

  • Check browser settings
  • Allow cookies for opscurb.com

2. Disable browser extensions:

  • Ad blockers may interfere
  • Privacy extensions may block cookies

3. Check system time:

  • Ensure system clock is accurate
  • JWT tokens are time-sensitive

Notification Issues

❌ Not receiving Slack notifications

Symptoms: Scans complete but no Slack messages

Solutions:

1. Verify integration:

Settings → Integrations → Slack
- Check "Connected" status
- Test integration

2. Check Slack webhook:

  • Webhook URL should start with https://hooks.slack.com/
  • Verify webhook is active in Slack settings

3. Check notification settings:

Settings → Notifications
- Enable "Slack Notifications"
- Select notification triggers

4. Test notification:

  • Click "Send Test Notification"
  • Check Slack channel

❌ Not receiving email notifications

Symptoms: No email alerts

Solutions:

1. Check spam folder:

2. Verify email address:

Settings → Profile
- Check email address is correct
- Verify email address

3. Check notification settings:

Settings → Notifications
- Enable "Email Notifications"
- Select notification triggers

4. Email provider issues:

  • Some providers block automated emails
  • Try different email address
  • Contact support for whitelisting

API Issues

❌ "401 Unauthorized"

Symptoms: API requests fail with 401 error

Solutions:

1. Check API token:

# Test token
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.opscurb.com/api/health

2. Regenerate token:

Settings → API Keys → Revoke → Generate New

3. Check token format:

  • Should be: Authorization: Bearer YOUR_TOKEN
  • Not: Authorization: YOUR_TOKEN

❌ "429 Too Many Requests"

Symptoms: API requests fail with 429 error

Cause: Rate limit exceeded

Solutions:

1. Check rate limits:

  • Free: 1,000 req/hour
  • Starter: 5,000 req/hour
  • Pro: 10,000 req/hour

2. Implement backoff:

import time
import requests

def api_call_with_retry(url, headers, max_retries=3):
    for i in range(max_retries):
        response = requests.get(url, headers=headers)
        if response.status_code == 429:
            wait_time = int(response.headers.get('Retry-After', 60))
            time.sleep(wait_time)
            continue
        return response
    raise Exception("Max retries exceeded")

3. Upgrade plan:

  • Higher plans have higher rate limits

Billing Issues

❌ Payment failed

Symptoms: "Payment failed" notification

Solutions:

1. Update payment method:

Settings → Billing → Update Payment Method

2. Check card details:

  • Expiration date
  • Billing address
  • CVV code

3. Contact bank:

  • Some banks block international payments
  • Whitelist Stripe (our payment processor)

4. Try different card:

  • Use different credit/debit card

❌ Can't cancel subscription

Symptoms: Cancel button not working

Solutions:

1. Clear outstanding invoices:

  • Pay any unpaid invoices first
  • Then cancel subscription

2. Contact support:


Performance Issues

❌ Dashboard is slow

Solutions:

1. Reduce data range:

  • View fewer scans
  • Filter by date range
  • Limit findings displayed

2. Clear browser cache:

  • See "Dashboard not loading" above

3. Check internet connection:

  • Run speed test
  • Try different network

4. Upgrade browser:

  • Use latest browser version
  • Enable hardware acceleration

Data Issues

❌ Cost estimates seem wrong

Symptoms: Estimated costs don't match AWS bill

Explanation:

Our cost estimates are based on:

  • AWS public pricing (updated monthly)
  • Resource metadata (size, type, region)
  • Standard pricing (not your specific discounts)

Accuracy: Typically ±10%

Reasons for differences:

  1. You have AWS discounts (Reserved Instances, Savings Plans)
  2. You're in a different pricing tier
  3. AWS pricing changed recently
  4. Resource metadata is incomplete

Solution:

  • Use estimates as relative comparison
  • Verify actual costs in AWS Cost Explorer
  • Contact support for custom pricing

❌ Missing resources

Symptoms: Resources exist in AWS but not in scan results

Causes:

  1. Resource in unsupported region
  2. Resource type not scanned yet
  3. Permissions issue
  4. Resource created after scan

Solutions:

1. Check scan regions:

Settings → Scan Configuration → Regions

2. Check scanner types:

3. Run new scan:

  • Resources created after scan won't appear
  • Run new scan to detect new resources

Still Having Issues?

Contact Support

Email: support@opscurb.com

Include:

  • Description of the issue
  • Steps to reproduce
  • Screenshots (if applicable)
  • Error messages
  • Your account ID
  • Browser/OS information

Response times:

  • Free: 48 hours
  • Starter: 24 hours
  • Pro: 4 hours
  • Enterprise: 1 hour

Check Status Page

URL: status.opscurb.com

Check for:

  • Service outages
  • Scheduled maintenance
  • Known issues

Community Forum

URL: community.opscurb.com

  • Search for similar issues
  • Ask the community
  • Share solutions

Last Updated: 2026-02-24
Version: 1.0