Fehler 3004: Verbindung ist instabil

Fehlercode 3004 erscheint als Benachrichtigungsleiste mit der Meldung „Connection is unstable. Please check your internet connection (code 3004)”, während die Sitzung technisch noch aktiv ist. Der BigBlueButton-Client ist zwar verbunden, aber die Verbindung bricht wiederholt kurz ab und stellt sich wieder her — ein Zeichen für eine instabile Netzwerkverbindung oder eine Überlastung des Servers.

Wie äußert sich der Fehler?

BBB zeigt in der Benachrichtigungsleiste die englischsprachige Meldung: „Connection is unstable. Please check your internet connection (code 3004)”. Diese erscheint, wenn der WebSocket zwar geöffnet ist, der Server jedoch keine Daten sendet und gleichzeitig die Netzwerklatenz (RTT) kritisch hoch ist.

Typische Begleiterscheinungen sind:

  • Wiederholte „Reconnecting…”-Banner im Konferenzfenster
  • Flackern der Teilnehmerliste
  • Verpasste Chat-Nachrichten
  • Unterbrechungen bei Audio und Video

Im Unterschied zu Fehlercode 3002 (vollständiger Verbindungsabbruch) bleibt bei 3004 die Sitzung erhalten — die Verbindung ist jedoch unzuverlässig.

Mögliche Ursachen

  • Instabiles WLAN: Der Client wechselt zwischen Zugangspunkten oder verliert kurzzeitig das Signal.
  • Mobilfunk-Roaming: Das Endgerät wechselt zwischen Mobilfunkantennen oder zwischen WLAN und mobilem Datennetz.
  • VPN-Instabilität: Ein VPN-Tunnel bricht sporadisch ab und baut sich neu auf.
  • Paketverlust beim Internetanbieter: Kurzfristige Störungen auf der Leitungsstrecke führen zu Verbindungsunterbrechungen.
  • Ressourcenspitzen auf dem Server: Kurzzeitige CPU- oder Speicherauslastungsspitzen machen den BBB-Server vorübergehend nicht erreichbar; nach der Entlastung verbindet sich der Client erneut — und dieser Zyklus wiederholt sich.
  • Kurzer TCP-Idle-Timeout am Load Balancer: Ein vorgelagerter Reverse Proxy oder Load Balancer trennt inaktive Verbindungen zu früh (z. B. nach 30 Sekunden).
  • Fehlerhafte nginx-Proxy-Konfiguration: Zu klein konfigurierte Proxy-Puffer führen dazu, dass nginx die WebSocket-Verbindung unter Last schließt.

Lösungen

Für Teilnehmer

  1. LAN-Kabel verwenden: Wechseln Sie von WLAN auf eine kabelgebundene Netzwerkverbindung, sofern möglich.
  2. VPN deaktivieren: Schalten Sie das VPN vorübergehend aus, wenn es für die Konferenz nicht erforderlich ist.
  3. Bandbreite freigeben: Schließen Sie andere Anwendungen oder Browser-Tabs, die eine hohe Netzwerklast erzeugen (z. B. Video-Streams, Cloud-Backups).
  4. WLAN erzwingen (Mobilgerät): Deaktivieren Sie die automatische Umschaltung auf mobile Daten, wenn das WLAN-Signal schwach wird.
  5. Seite neu laden: Falls die Meldung dauerhaft bestehen bleibt, laden Sie die Seite neu und betreten Sie die Konferenz erneut.

Für Administratoren

Stellen Sie zunächst fest, ob nur ein einzelner Teilnehmer oder alle Teilnehmer betroffen sind. Ist nur eine Person betroffen, liegt die Ursache in der Regel auf der Clientseite. Sind alle betroffen, deutet dies auf ein serverseitiges Problem hin.

  1. Serverauslastung prüfen:
# CPU-Auslastung
top -b -n 3 | head -30

# Arbeitsspeicher
free -h
vmstat 1 5

# Dateideskriptoren der BBB-Dienste
for svc in bbb-html5 bbb-graphql-middleware node; do
  PID=$(pgrep -f $svc | head -1)
  [ -n "$PID" ] && echo "$svc ($PID): $(ls /proc/$PID/fd | wc -l) FDs"
done

# Netzwerkverbindungen
ss -s
  1. nginx-Proxy-Timeouts anpassen — stellen Sie sicher, dass die WebSocket-Verbindung nicht vorzeitig getrennt wird:
# /etc/nginx/sites-available/bigbluebutton
location /html5client/ {
    proxy_read_timeout 86400s;
    proxy_send_timeout 86400s;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
}
sudo nginx -t && sudo systemctl reload nginx
  1. TCP-Idle-Timeout am Load Balancer erhöhen: Setzen Sie den Timeout auf mindestens 600 Sekunden. Bei AWS ALB passen Sie den Wert in den Load-Balancer-Einstellungen an; bei Cloudflare stellen Sie sicher, dass WebSocket-Unterstützung aktiviert ist.
  2. BBB-Dienste neu starten (um mögliche Ressourcenlecks zu beheben):
sudo bbb-conf --restart

Tritt 3004 nach einigen Stunden Betrieb erneut auf, kann ein geplanter Neustart in betriebsschwachen Zeiten als Übergangslösung dienen, bis die eigentliche Ursache (z. B. ein Speicherleck) behoben ist.

Weitere Informationen

Verwandte Fehlercodes, die in ähnlichen Situationen auftreten können:

  • Fehler 3002 – Verbindung vollständig unterbrochen (kritischer RTT + kein WebSocket)
  • Fehler 3005 – Daten werden langsam geladen (WebSocket offen, aber Hasura-Subscription verzögert)
  • Fehler 3006 – Live-Daten konnten nicht geladen werden (GraphQL-Subscription fehlgeschlagen)