Troubleshooting
This guide covers common issues you may encounter when pairing OPBX with Cloudonix and how to resolve them.
Pairing Issues
Invalid Domain UUID
Symptoms:
- Validation fails with "Invalid credentials"
- Error message about Domain UUID
Solutions:
- Verify UUID format: Must be valid UUID (
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) - Check in Cloudonix Portal: Settings → Domain UUID
- Copy correctly: Ensure no extra spaces or characters
Invalid API Key
Symptoms:
- "Invalid credentials" error
- Authentication failures
Solutions:
- Regenerate key: In Cloudonix Portal → API Keys → Create new
- Check key permissions: Ensure required permissions are enabled
- Verify key type: Must be Domain API Key, not Requests API Key
Network Connectivity Issues
Symptoms:
- "Network error" or "Connection timeout"
- API calls fail intermittently
Solutions:
- Check internet connection: Test connectivity to
api.cloudonix.io - Firewall rules: Ensure outbound port 443 is open
- DNS resolution: Verify
api.cloudonix.ioresolves correctly - Check Cloudonix status: Visit Cloudonix Status
Voice Application Creation Failed
Symptoms:
- Settings save but show warning about voice application
- Webhooks not being configured
Solutions:
- Check API permissions: Ensure
voiceapplication:writeis enabled - Check package limits: May have reached voice application limit
- Manual creation: Create voice application in Cloudonix Portal, then update settings
- Check webhook URL: Ensure it's publicly accessible
Extension Sync Issues
Extension Not Syncing to Cloudonix
Symptoms:
- Extension shows "Local Only" status
- Sync button doesn't work
Solutions:
- Run full sync: Click "Sync All" button
- Check credentials: Re-validate Cloudonix settings
- Check API limits: May have reached subscriber limit
- View error details: Check OPBX logs for specific errors
Subscriber Exists in Cloudonix But Not OPBX
Symptoms:
- Shows "Cloudonix Only" in sync comparison
- Orphaned subscribers
Solutions:
- Import to OPBX: Use "Import from Cloudonix" option
- Delete in Cloudonix: If not needed, delete directly in portal
- Check sync: Run comparison to see full picture
Sync Timeout or Rate Limiting
Symptoms:
- Sync fails with timeout error
- "Rate limit exceeded" message
Solutions:
- Wait and retry: Rate limits reset after some time
- Sync fewer at once: Sync extensions in batches
- Check Cloudonix package: May have API call limits
Webhook Issues
Webhooks Not Received
Symptoms:
- Calls don't route correctly
- No webhook logs in OPBX
Solutions:
- Check ngrok: Ensure running and URL is correct
- Verify webhook URLs: Check in Settings → Webhook URLs
- Check Cloudonix Portal: Verify webhook URLs in Voice Application
- Review ngrok inspector: Check if webhooks are arriving
Webhook Authentication Failures
Symptoms:
- "Unauthorized" in webhook logs
- 401 errors
Solutions:
- Requests API Key: Ensure it's set in both OPBX and Cloudonix
- Check Bearer token: Verify format is correct
- Re-generate key: In OPBX Settings, generate new Requests API Key
- Update Cloudonix: Enter new key in Cloudonix Portal
Webhook Timeouts
Symptoms:
- Calls drop or don't complete
- Timeout errors in logs
Solutions:
- Check OPBX logs: Identify what's causing delay
- Database performance: Ensure MySQL is responsive
- Queue backlog: Check Redis queue for stuck jobs
- Network latency: Test between Cloudonix and your server
Call Routing Issues
Calls Not Routing to Extensions
Symptoms:
- Call arrives but nothing happens
- Caller hears silence or error
Solutions:
- Check routing: Verify DID is mapped to extension/ring group
- Check webhook route: Ensure voice route webhook returns valid CXML
- Check extension status: Ensure extension is Active
- Review logs: Check OPBX logs for routing errors
Calls Go to Voicemail Immediately
Symptoms:
- Extension rings briefly then goes to voicemail
Solutions:
- Check timeout: Increase No Answer Timeout in Settings
- Check extension status: Extension must be Active
- Check SIP registration: If using SIP phone, ensure registered
- Check business hours: Ensure within business hours if configured
Ring Group Not Working
Symptoms:
- Ring group doesn't ring multiple extensions
Solutions:
- Check members: Ensure extensions are added to ring group
- Check strategy: Verify ring group strategy (simultaneous, round-robin)
- Check timeout: Increase ring group timeout
Diagnostic Steps
Step 1: Check OPBX Logs
# View Laravel logs
docker compose logs app --tail=100
# Filter for Cloudonix-related logs
docker compose logs app | grep -i cloudonix
Step 2: Check Cloudonix Portal
- Voice Applications: Verify app exists and is default
- Subscribers: Verify extensions synced correctly
- API Keys: Verify permissions
- Webhook Logs: Check delivery status
Step 3: Test Connectivity
# Test API connectivity
curl -I https://api.cloudonix.io
# Test webhook endpoint
curl -X POST https://your-webhook-url/api/voice/route \
-H "Content-Type: application/json" \
-d '{"test": true}'
Step 4: Re-validate Credentials
- Go to Settings
- Click "Validate & Save"
- Fix any errors shown
Step 5: Full Re-sync
- Go to Extensions
- Click "Sync All"
- Monitor for errors
Getting Help
If you've tried these solutions and still have issues:
Gather Information
Before contacting support, collect:
- OPBX version
- Cloudonix package/tier
- Steps to reproduce
- Relevant logs
- Screenshots of errors
Support Channels
- OPBX Issues: GitHub Issues
- Cloudonix Support: Cloudonix Support
Common Error Messages
| Error | Meaning | Solution |
|---|---|---|
Invalid Domain UUID | UUID format wrong or doesn't exist | Verify in Cloudonix Portal |
Invalid API Key | Key is wrong or revoked | Regenerate in Portal |
Network Error | Can't reach Cloudonix | Check connectivity |
Rate Limited | Too many API calls | Wait and retry |
Voice App Not Found | Voice application missing | Re-save settings |
Webhook Timeout | OPBX taking too long | Check performance |
401 Unauthorized | Authentication failed | Check API keys |
Prevention Tips
- Use HTTPS in production: Never use HTTP
- Monitor logs: Regularly check for errors
- Keep credentials secure: Don't share API keys
- Test after changes: Make test calls after configuration changes
- Keep packages updated: Both OPBX and Cloudonix
Related Documentation: