Fehler 1002: WebSocket-Verbindung fehlgeschlagen

Fehler 1002 bedeutet, dass der Browser die WebSocket-Verbindung zum BigBlueButton-Server gar nicht erst aufbauen konnte. Das unterscheidet ihn von Fehler 1001, bei dem eine bestehende Verbindung unterbrochen wurde: Hier kam keine Verbindung zustande – der Verbindungsaufbau selbst ist gescheitert. Der Browser hat keine HTTP-101-Antwort (Switching Protocols) vom Server erhalten und bricht den Versuch ab, bevor Audio oder andere Daten übertragen werden.

Wie äußert sich der Fehler?

BigBlueButton zeigt beim Beitreten eines Meetings ein Fehlerfenster mit dem Hinweis auf Fehlercode 1002. Der Ton funktioniert nicht – weder Mikrofon noch Lautsprecher sind verfügbar. Die Teilnahme ist ohne funktionsfähige WebSocket-Verbindung nicht möglich. Das Problem tritt meist direkt beim Verbindungsaufbau auf, nicht nach einer bereits bestehenden Sitzung.

Mögliche Ursachen

Die Ursachen lassen sich in zwei Gruppen einteilen – nutzer- bzw. netzwerkseitig und serverseitig:

  • Firewall oder Netzwerksperre: Port 443, 5066 oder 7443 ist auf dem Netzwerkweg blockiert (z. B. im Firmennetzwerk oder durch einen Router).
  • Deep Packet Inspection (DPI): Unternehmens- oder Schulnetzwerke prüfen den Datenverkehr und blockieren WebSocket-Upgrade-Header.
  • Proxy-Server: Ein zwischengeschalteter Proxy gibt keine WebSocket-Verbindungen weiter und antwortet mit einem Fehler statt mit HTTP 101.
  • CDN oder DDoS-Schutz: Dienste wie Cloudflare müssen explizit für WebSocket-Traffic konfiguriert sein – fehlt diese Einstellung, wird die Verbindung abgebrochen.
  • FreeSWITCH läuft nicht: Der Audio-Dienst auf dem BBB-Server ist gestoppt oder abgestürzt.
  • Falsche nginx-Konfiguration: Die Datei /etc/bigbluebutton/nginx/sip.nginx leitet WebSocket-Verbindungen an eine falsche IP-Adresse oder einen falschen Port weiter.
  • NAT / Cloud-Server: Der Server hat eine interne (private) IP, FreeSWITCH ist jedoch an diese statt an die externe IP gebunden – nginx kann FreeSWITCH dann nicht erreichen.
  • IPv6-Probleme: FreeSWITCH versucht, sich an eine IPv6-Adresse zu binden, obwohl der Server kein IPv6 unterstützt.
  • Konfigurationsrücksetzung nach Update: Nach einem apt-get upgrade können Konfigurationsdateien auf Standardwerte zurückgesetzt worden sein.

Lösungen

Für Teilnehmer

  1. Netzwerkverbindung prüfen: Stellen Sie sicher, dass Ihr Internetzugang funktioniert. Rufen Sie eine andere Website auf, um dies zu bestätigen.
  2. Netzwerk wechseln: Falls Sie sich in einem Firmen- oder Schulnetzwerk befinden, versuchen Sie es über Ihren Mobilfunk-Hotspot oder ein anderes WLAN. Viele Unternehmensnetzwerke blockieren WebSocket-Verbindungen.
  3. VPN deaktivieren: Ein aktives VPN kann WebSocket-Verbindungen stören. Deaktivieren Sie es vorübergehend und versuchen Sie es erneut.
  4. Browser-Erweiterungen deaktivieren: Proxy- oder Sicherheits-Erweiterungen können WebSocket-Verbindungen blockieren. Starten Sie den Browser im privaten Modus oder deaktivieren Sie Erweiterungen testweise.
  5. Anderen Browser testen: Probieren Sie einen anderen Browser aus, um browserspezifische Probleme auszuschließen.
  6. Seite neu laden: Schließen Sie den Tab und rufen Sie den Meeting-Link erneut auf.

Für Administratoren

  1. Als Erstes: BBB-Konfiguration prüfen – dieser Befehl erkennt die häufigsten Fehlkonfigurationen automatisch:
sudo bbb-conf --check
  1. FreeSWITCH-Status prüfen:
sudo systemctl status freeswitch.service
# Falls nicht aktiv:
sudo systemctl start freeswitch.service
journalctl -u freeswitch.service --since "10 minutes ago"
  1. sip.nginx prüfen und korrigieren – das ist die häufigste Ursache. Die Datei /etc/bigbluebutton/nginx/sip.nginx muss auf die korrekte externe IP und den richtigen Port zeigen:
cat /etc/bigbluebutton/nginx/sip.nginx

Korrekte Konfiguration für HTTPS/WSS-Setups (Standard):

location /ws {
    proxy_pass https://EXTERNE_IP:7443;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_read_timeout 6h;
    proxy_send_timeout 6h;
    client_body_timeout 6h;
    send_timeout 6h;
}
  1. NAT / Cloud-Server (z. B. AWS, DigitalOcean): Wenn der Server hinter NAT betrieben wird, muss die externe IP als lokaler Alias eingetragen werden, damit FreeSWITCH erreichbar ist:
# Temporär (zum Testen):
sudo ip addr add EXTERNE_IP/32 dev lo

# Dauerhaft – in /etc/network/interfaces eintragen:
post-up ip addr add EXTERNE_IP/32 dev lo
pre-down ip addr del EXTERNE_IP/32 dev lo
  1. Sauberer Neustart: Nach Konfigurationsänderungen alle BBB-Dienste neu starten:
sudo bbb-conf --clean
sudo bbb-conf --restart
sudo bbb-conf --check
  1. Konfiguration über Updates hinweg sichern: Nach System-Updates können Konfigurationsdateien zurückgesetzt werden. Tragen Sie die Korrekturen in /etc/bigbluebutton/bbb-conf/apply-config.sh ein, damit sie nach jedem Update automatisch erneut angewendet werden.

Weitere Informationen

Verwandte Fehlercodes: Fehler 1001 (WebSocket-Verbindung verloren – die Verbindung stand zunächst, wurde aber unterbrochen) und Fehler 3002 (Verbindung nicht möglich bei kritisch hoher Latenz). Fehler 1002 tritt häufig zusammen mit Netzwerkkonfigurationsproblemen auf, die auch andere WebSocket-basierte Dienste betreffen können.