Der Statuscode 3005 erscheint in BigBlueButton als Hinweismeldung „Data is slow to load. Please wait.” Er bedeutet nicht, dass die Verbindung getrennt wurde – die WebSocket-Verbindung zum Server ist weiterhin aktiv. Stattdessen zeigt dieser Code an, dass die Datenlieferung über den Hasura-Subscription-Kanal ins Stocken geraten ist. In den meisten Fällen handelt es sich um eine vorübergehende Verzögerung, die sich von selbst auflöst.
Wie äußert sich der Fehler?
BigBlueButton zeigt im Browser eine Benachrichtigungsleiste mit der englischen Meldung: „Data is slow to load. Please wait.” Die Oberfläche bleibt sichtbar und die Sitzung läuft weiter, aber Echtzeit-Aktualisierungen kommen verzögert an. Konkret können folgende Symptome auftreten:
- Die Teilnehmerliste aktualisiert sich langsam oder verzögert.
- Chat-Nachrichten erscheinen mit Verzögerung.
- Folienwechsel in der Präsentation werden verspätet übertragen.
- Statusanzeigen wie Handheben oder Reaktionen werden verzögert dargestellt.
Technisch gesehen gilt beim Code 3005 folgende Bedingung: Die WebSocket-Verbindung ist offen, der Server antwortet auf Latenzmessungen (RTT) – aber die regelmäßigen Hasura-PING-Nachrichten im Subscription-Kanal bleiben aus. Das unterscheidet diesen Code von reinen Verbindungsabbrüchen (3001/3002) oder der schwereren Variante mit nicht reagierendem Server (3003/3004).
Mögliche Ursachen
- Hasura vorübergehend ausgelastet: Der Subscription-Worker verarbeitet zu viele gleichzeitige Anfragen und kommt kurzfristig nicht nach.
- Hohe Teilnehmerzahl: Bei großen Meetings mit vielen Teilnehmern muss Hasura Subscription-Ereignisse an sehr viele Clients gleichzeitig verteilen (Fan-out), was zu Verzögerungen führt.
- CPU- oder I/O-Überlastung auf dem Server: Hasura, PostgreSQL oder bbb-apps-akka sind unter Last; Datenbankabfragen dauern länger als üblich.
- PostgreSQL-Sperrkonflikte: Lang laufende Schreiboperationen (z. B. Präsentationsverarbeitung oder Aufnahmen) blockieren andere Abfragen und verzögern damit die Subscription-Ereignisse.
- Langsame Client-Verbindung: Nutzt ein einzelner Teilnehmer eine schwache Mobilverbindung (z. B. 2G/3G), können GraphQL-Antworten auf seiner Seite langsam ankommen – während alle anderen Teilnehmer keine Probleme haben.
- GC-Pausen im Middleware-Prozess: Der Node.js-Prozess bbb-graphql-middleware kann unter Speicherdruck kurze Garbage-Collection-Pausen haben, während derer keine Nachrichten weitergeleitet werden.
Lösungen
Für Teilnehmer
- Warten Sie kurz ab. Code 3005 löst sich in den meisten Fällen innerhalb weniger Sekunden von selbst auf, sobald der Server wieder aufgeholt hat. Seite nicht sofort neu laden.
- Internetverbindung prüfen. Führen Sie einen Speedtest durch (z. B. fast.com). Wenn nur Ihr Client betroffen ist, liegt das Problem möglicherweise bei Ihrer Verbindung.
- WLAN-Qualität verbessern. Nähern Sie sich dem Router, wechseln Sie auf ein stabileres Netzwerk oder nutzen Sie falls möglich eine kabelgebundene Verbindung.
- Andere Browser-Tabs schließen. Entlasten Sie den Browser, indem Sie nicht benötigte Tabs schließen – besonders solche mit Video-Inhalten.
- Seite neu laden, falls die Meldung dauerhaft bestehen bleibt (länger als 30–60 Sekunden).
Für Administratoren
- Hasura-Status prüfen:
sudo journalctl -u bbb-graphql-server -n 50
sudo systemctl status bbb-graphql-server bbb-graphql-middleware- Serverlast überprüfen:
top
ps aux --sort=-%cpu | head -20- PostgreSQL auf langsame Abfragen und Sperren prüfen:
sudo -u postgres psql -c "SELECT pid, now() - query_start AS duration, query, state, wait_event FROM pg_stat_activity WHERE state != 'idle' ORDER BY duration DESC LIMIT 10;"- Hasura-Verbindungspool anpassen (bei dauerhafter Last durch viele gleichzeitige Meetings):
sudo systemctl edit bbb-graphql-middlewareUmgebungsvariablen für Hasura, die bei Bedarf erhöht werden können:
HASURA_GRAPHQL_PG_CONNECTIONS=50
HASURA_GRAPHQL_MAX_CACHE_SIZE=200- Gleichzeitige Meetings reduzieren oder Scalelite für horizontale Skalierung auf mehrere BBB-Knoten einsetzen, wenn die Last dauerhaft zu hoch ist.
Weitere Informationen
Code 3005 gehört zu einer Reihe abgestufter Verbindungsstatuscodes in BigBlueButton. Verwandte Codes:
- 3004 – Verbindung instabil: Server antwortet nicht und Netzwerklatenz ist kritisch.
- 3006 – Live-Daten konnten nicht geladen werden: Eine GraphQL-Subscription ist mit einem Fehler fehlgeschlagen (Seite neu laden erforderlich).
