Troubleshooting
Running into issues? Here are solutions to the most common problems.
Connection Issuesβ
"Room not found" Errorβ
Symptom: Students get a 404 error when trying to join.
Cause: The room doesn't exist yet. Rooms must be created via the API before anyone can join.
Solution:
- Check that you're using the exact same
roomIdfor everyone - Room IDs are case-sensitiveβ
Math-101βmath-101
For students, handle this gracefully:
if (response.status === 404) {
showMessage("Waiting for class to start...");
// Optionally poll every 5 seconds
}
Connection Drops or Freezesβ
Symptom: Video freezes, shows "Reconnecting...", or disconnects entirely.
Possible Causes:
- Unstable network: WiFi interference, poor cellular signal
- Firewall blocking: Corporate networks often block WebRTC
- VPN interference: Some VPNs break real-time connections
Debug Steps:
- Check network stability:
ping google.comfor packet loss - Try a different network (mobile hotspot)
- Disable VPN temporarily
- Check if WebRTC is blocked: visit test.webrtc.org
Connection Works Sometimes, Not Othersβ
Symptom: Same setup works on some networks but not others.
Likely Cause: Restrictive firewalls blocking UDP or WebRTC ports.
Our infrastructure handles this by falling back to TURN servers, but some extremely locked-down networks block everything.
Solutions:
- Ask IT to allow WebRTC traffic
- Try port 443 (HTTPS) which is rarely blocked
- Use a mobile hotspot as fallback
Video Quality Issuesβ
Video is Blurryβ
Possible Causes:
- Adaptive quality kicked in: Network is slow, so we reduced quality
- Instructor's camera is low-quality: Webcam might only do 720p
- Browser is throttling: Background tabs get fewer resources
Checking Quality:
Look at the quality indicator in the control bar. Students can try changing quality in settings.
Video Lags Behind Audioβ
Symptom: Lip sync is off.
Cause: Usually network jitterβpackets arriving out of order.
Solutions:
- Refresh the page
- Check network stability
- Use wired Ethernet if available
Screen Share is Choppyβ
Cause: Screen share at high resolution + detail is demanding.
Solutions:
- Share a specific window instead of entire screen
- Close unnecessary browser tabs
- Instructor should use wired connection
Audio Problemsβ
No Audio from Instructorβ
Check these:
- Muted? Look at the mic icon in controls
- Correct device? Check settings β audio input
- Browser permissions? Click the π icon next to the URL
- OS permissions? macOS: System Preferences β Privacy β Microphone
Audio Echoβ
Cause: Microphone picking up speaker output.
Solutions:
- Use headphones (best solution)
- Mute when not speaking
- Lower speaker volume
Audio Distorted or Roboticβ
Cause: Poor network or high CPU usage.
Solutions:
- Close other apps consuming CPU
- Check network stability
- Lower video quality to save bandwidth
Mobile Issuesβ
Camera Permission Denied (iOS)β
Check:
- Settings β Safari β Camera β Allow
- Settings β Privacy β Camera β [Your App] β Allow
For Flutter apps, make sure you added the permission strings to Info.plist.
App Crashes on Androidβ
Common Causes:
- Missing permissions in manifest:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
-
ProGuard stripping WebRTC classes: Add keep rules for WebRTC
-
Low memory: Older devices might struggle with video
Video Not Loading on Mobileβ
Check:
- Is the device connected to the internet? (seems obvious, but...)
- Is the app granted all permissions?
- Try switching between WiFi and cellular
API Issuesβ
"Organization not found"β
Check:
VF-ORG-IDheader is present- Value matches exactly (copy-paste from dashboard)
- No extra spaces or characters
"Insufficient credits"β
Solution: Top up credits in the dashboard.
Prevention: Monitor credit usage and set up alerts.
Requests Timing Outβ
Possible Causes:
- Network issues between your server and ours
- Very occasional service issues on our end
Solutions:
- Implement retry logic with backoff
- Check status.verriflo.com for outages
Recording Issuesβ
Recording Not Availableβ
Check:
- Did the instructor actually click "Record"?
- Has 6 hours passed? (recordings expire)
- Is the class still ongoing? (can't download while live)
- Try waiting a few minutesβprocessing takes time
Recording Expiredβ
Unfortunately: Once 6 hours pass, recordings are deleted permanently.
Prevention: Set up automated downloads. See Recording Guide.
Wrong Content in Recordingβ
What's recorded: The composite viewβexactly what students see.
Not recorded: Individual participant cameras (students), chat, polls.
Debugging Tipsβ
Check Browser Consoleβ
Open DevTools (F12) and look at the Console tab. Errors will appear there.
Common patterns:
Permission denied: Browser didn't grant camera/mic accessNetwork error: Connection issuesCORS error: If you see this, something's misconfigured
Enable Verbose Logging (Flutter)β
import 'package:flutter/foundation.dart';
// In your app initialization
if (kDebugMode) {
debugPrint('Verriflo debug mode enabled');
}
Test in Isolationβ
Having issues in your app? Try the raw joining URL in a browser first. If that works, the issue is in your integration.
Network Diagnosticsβ
# Test connection to our infrastructure
curl -I https://api.verriflo.com/v1/health/status
# Check WebRTC connectivity
# Visit: https://test.webrtc.org
Getting Helpβ
Still stuck? Here's how to get help:
Gather Informationβ
Before contacting us, collect:
- Error messages (screenshots or text)
- Browser/device information
- Network type (home, corporate, mobile)
- Steps to reproduce
- Approximate time the issue occurred
Contact Supportβ
Email support@verriflo.com with:
- Subject: Brief description of issue
- Body: Information gathered above
We typically respond within a few hours during business hours.
Check Statusβ
Before reporting, check status.verriflo.com for any known issues.
Still need help? We're at support@verriflo.com.