-
Notifications
You must be signed in to change notification settings - Fork 653
Description
[REQUIRED] Step 2: Describe your environment
This is a re-opening of an issue #7529 as per @lehcar09 request.
Its pretty fundamental bug that is still happening and needs urgent attention
- Android Studio version: Android Studio Narwhal 3 Feature Drop | 2025.1.3
- Firebase Component: Database (Database, Firestore, Storage, Functions, etc)
- Component version:
BOM 34.5.0
cloud_firestore: ^6.1.0
firebase_core: ^4.2.1
firebase_database: ^12.0.4
firebase_auth: ^6.1.2
[REQUIRED] Step 3: Describe the problem
Once my app starts, I can start a realtime database connection. However, if I disconnect and wait a while, or if I leave the app in the background for a while then bring it to the foreground I cannot get the realtime database to connect again.
This is happening against production systems, not emulator. I am also currently developing against the free plan.
For the love of god, help me fix this. It's utterly stupid that a simple flow doesn't work. Im either doing something wrong or the framework and service is utterly broken.
It seems on the second connection attempt the .info/connected path never updates to true.
Note, this issue was originaly created in the flutter library github repo but I was directed here since they are able to reproduce it but it is an issue in the Android SDK
Steps to reproduce:
Start app
Connect to realtime DB
Disconnect or put app in background and wait 5 minutes
Try to reconnect
Relevant Code:
this is my code path. Very simple
I start with
_db.ref(".info/connected").onValue.listen(_dbEventHandler, onError: _dbErrorHandler);void _dbEventHandler(DatabaseEvent event) {
bool dbConnected = event.snapshot.value as bool;
logd("DBstate=$dbConnected", tag: _TAG);
if (_isConnected && !dbConnected) {
_shutDown(reason: PushartErrorReason.DB_OFFLINE_ERROR);
} else if (_isConnecting && dbConnected) {
//Great we are connected but doesn't get here on reconnect attempt
}
}my shutdown (method to disconnect is as follows
void _shutDown({PushartErrorReason? reason}) {
logd("Shutting pushart down : reason=$reason", tag: _TAG);
if (_isConnected) {
logd("Setting DB Offline", tag: _TAG);
_db
.goOffline()
.then((_) => logd("Database offline", tag: _TAG))
.onError((error, stackTrace) => loge("Error closing connection", tag: _TAG, stackTrace: stackTrace));
}
//Clear some other state
}Below is the log output from connecting, manually disconnecting, waiting for a minute then trying to reconnect.
Includes realtime database debug log output as well as app level log output that you can easily tell the flow.
You can see at the end I fire a timeout event since the realtime database fails to go online after 5 seconds since the .info/connected doesn't update to true
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [AnalyticEventsMiddleware] Action StartClassAction(bBgxNHrTJ8VkZEI0AVEB)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [TeacherSessionsMiddleware] Handling StartClassAction(bBgxNHrTJ8VkZEI0AVEB)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [AnalyticEventsMiddleware] Action ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STARTING, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [SendLockTabletsMsgMiddleware] Handling ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STARTING, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [Reducer] Reducing ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STARTING, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [PushartClient] Connecting to DB
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/PersistentConnection(10312): pc_0 - Connection no longer interrupted for: repo_interrupt
D/PersistentConnection(10312): pc_0 - Scheduling connection attempt
D/ConnectionRetryHelper(10312): Scheduling retry in 0ms
D/PersistentConnection(10312): pc_0 - Trying to fetch auth token
D/PersistentConnection(10312): pc_0 - Trying to fetch app check token
D/PersistentConnection(10312): pc_0 - Successfully fetched token, opening connection
D/Connection(10312): conn_0 - Opening a connection
D/EventRaiser(10312): Raising 1 event(s)
D/EventRaiser(10312): Raising /.info/connected: VALUE: false
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [PushartClient] DBstate=false
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/EGL_emulation(10312): app_time_stats: avg=545.88ms min=2.71ms max=3938.33ms count=8
D/WebSocket(10312): ws_0 - websocket opened
D/WebSocket(10312): ws_0 - Reset keepAlive
D/WebSocket(10312): ws_0 - ws message: {"t":"c","d":{"t":"h","d":{"ts":1759691083390,"v":"5","h":"s-gke-euw1-nssi3-3.europe-west1.firebasedatabase.app","s":"uVWNpxCpKWFcINDXbJeLIQIzAy8yi2Nq"}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44995
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=c, d={t=h, d={h=s-gke-euw1-nssi3-3.europe-west1.firebasedatabase.app, s=uVWNpxCpKWFcINDXbJeLIQIzAy8yi2Nq, v=5, ts=1759691083390}}}
D/Connection(10312): conn_0 - Got control message: {t=h, d={h=s-gke-euw1-nssi3-3.europe-west1.firebasedatabase.app, s=uVWNpxCpKWFcINDXbJeLIQIzAy8yi2Nq, v=5, ts=1759691083390}}
D/Connection(10312): conn_0 - realtime connection established
D/PersistentConnection(10312): pc_0 - onReady
D/PersistentConnection(10312): pc_0 - handling timestamp
D/PersistentConnection(10312): pc_0 - Sending first connection stats
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=s, r=0, b={c={sdk.android.22-0-0=1, persistence.android.enabled=1}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44998
D/PersistentConnection(10312): pc_0 - calling restore tokens
D/PersistentConnection(10312): pc_0 - Restoring auth.
D/PersistentConnection(10312): pc_0 - Sending auth.
D/Connection(10312): conn_0 - Sending data (contents hidden)
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44999
D/EventRaiser(10312): Raising 1 event(s)
D/EventRaiser(10312): Raising /.info/connected: VALUE: true
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [PushartClient] DBstate=true
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [TeacherClassSessionEventHandler] Received class event : ClassSessionEvent(ClassEventType.CONNECTED, null)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/RepoOperation(10312): set: /rooms/297054033/sessions/-OapkkYcb5w9TtiZtHG7
D/DataOperation(10312): set: /rooms/297054033/sessions/-OapkkYcb5w9TtiZtHG7 {
D/DataOperation(10312): startTime=2025-10-05T19:04:41.961616Z
D/DataOperation(10312): }
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Persisted user overwrite in 1ms
D/Persistence(10312): Transaction completed. Elapsed: 6ms
D/RepoOperation(10312): Aborting transactions for path: /rooms/297054033/sessions/-OapkkYcb5w9TtiZtHG7. Affected: /rooms/297054033/sessions/-OapkkYcb5w9TtiZtHG7
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":0,"b":{"s":"ok","d":""}}}
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":1,"b":{"s":"ok","d":{"auth":{"name":"Nick De Vries","email_verified":false,"provider":"password","email":"teacher2@siia.io","role":"TEACHER","orgId":"wJGVE0NUoq5Ztbbn10gE","user_id":"MuZNMPbStLcZqXCHYZ6glh2tiSp2","token":{"name":"Nick De Vries","email_verified":false,"email":"teacher2@siia.io","role":"TEACHER","orgId":"wJGVE0NUoq5Ztbbn10gE","exp":1759694673,"user_id":"MuZNMPbStLcZqXCHYZ6glh2tiSp2","iat":1759691073,"sub":"MuZNMPbStLcZqXCHYZ6glh2tiSp2","aud":"siialauncher-dev","auth_time":1759691073,"iss":"https://securetoken.google.com/siialauncher-dev","firebase":{"identities":{"email":["teacher2@siia.io"]},"sign_in_provider":"password"}},"uid":"MuZNMPbStLcZqXCHYZ6glh2tiSp2"},"expires":1759694673}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44959
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=0, b={d=, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=0, b={d=, s=ok}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44999
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=1, b={d={auth={uid=MuZNMPbStLcZqXCHYZ6glh2tiSp2, email_verified=false, role=TEACHER, provider=password, user_id=MuZNMPbStLcZqXCHYZ6glh2tiSp2, name=Nick De Vries, email=teacher2@siia.io, orgId=wJGVE0NUoq5Ztbbn10gE, token={sub=MuZNMPbStLcZqXCHYZ6glh2tiSp2, email_verified=false, role=TEACHER, iss=https://securetoken.google.com/siialauncher-dev, firebase={sign_in_provider=password, identities={email=[teacher2@siia.io]}}, orgId=wJGVE0NUoq5Ztbbn10gE, aud=siialauncher-dev, user_id=MuZNMPbStLcZqXCHYZ6glh2tiSp2, auth_time=1759691073, name=Nick De Vries, exp=1759694673, iat=1759691073, email=teacher2@siia.io}}, expires=1759694673}, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=1, b={d={auth={uid=MuZNMPbStLcZqXCHYZ6glh2tiSp2, email_verified=false, role=TEACHER, provider=password, user_id=MuZNMPbStLcZqXCHYZ6glh2tiSp2, name=Nick De Vries, email=teacher2@siia.io, orgId=wJGVE0NUoq5Ztbbn10gE, token={sub=MuZNMPbStLcZqXCHYZ6glh2tiSp2, email_verified=false, role=TEACHER, iss=https://securetoken.google.com/siialauncher-dev, firebase={sign_in_provider=password, identities={email=[teacher2@siia.io]}}, orgId=wJGVE0NUoq5Ztbbn10gE, aud=siialauncher-dev, user_id=MuZNMPbStLcZqXCHYZ6glh2tiSp2, auth_time=1759691073, name=Nick De Vries, exp=1759694673, iat=1759691073, email=teacher2@siia.io}}, expires=1759694673}, s=ok}}
D/PersistentConnection(10312): pc_0 - Restoring outstanding listens
D/PersistentConnection(10312): pc_0 - Restoring writes.
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=p, r=2, b={p=rooms/297054033/sessions/-OapkkYcb5w9TtiZtHG7, d={startTime=2025-10-05T19:04:41.961616Z}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44999
D/PersistentConnection(10312): pc_0 - Restoring reads.
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":2,"b":{"s":"ok","d":""}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44949
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=2, b={d=, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=2, b={d=, s=ok}}
D/PersistentConnection(10312): pc_0 - p response: {d=, s=ok}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Deleted 1 write(s) with writeId 1 in 0ms
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /rooms/297054033/sessions/-OapkkYcb5w9TtiZtHG7 in 2ms
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 8ms
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=om, r=3, b={p=rooms/297054033/sessions/-OapkkYcb5w9TtiZtHG7, d={endTime={.sv=timestamp}}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44987
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":3,"b":{"s":"ok","d":""}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44940
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=3, b={d=, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=3, b={d=, s=ok}}
D/RepoOperation(10312): update: /rooms/297054033
D/DataOperation(10312): update: /rooms/297054033 {isOnline=false}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Persisted user merge in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 5ms
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=m, r=4, b={p=rooms/297054033, d={isOnline=false}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44992
D/RepoOperation(10312): Aborting transactions for path: /rooms/297054033/isOnline. Affected: /rooms/297054033/isOnline
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":4,"b":{"s":"ok","d":""}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44954
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=4, b={d=, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=4, b={d=, s=ok}}
D/PersistentConnection(10312): pc_0 - m response: {d=, s=ok}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Deleted 1 write(s) with writeId 2 in 0ms
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /rooms/297054033/isOnline in 0ms
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 5ms
D/RepoOperation(10312): update: /rooms/297054033
D/DataOperation(10312): update: /rooms/297054033 {ownerName=Nick De Vries, roomTopic=Math - Grade7, isOnline=true, ownerId=MuZNMPbStLcZqXCHYZ6glh2tiSp2, roomName=297054033, roomId=bBgxNHrTJ8VkZEI0AVEB}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Persisted user merge in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 3ms
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=m, r=5, b={p=rooms/297054033, d={ownerName=Nick De Vries, roomTopic=Math - Grade7, isOnline=true, ownerId=MuZNMPbStLcZqXCHYZ6glh2tiSp2, roomName=297054033, roomId=bBgxNHrTJ8VkZEI0AVEB}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44988
D/RepoOperation(10312): Aborting transactions for path: /rooms/297054033/isOnline. Affected: /rooms/297054033/isOnline
D/RepoOperation(10312): Aborting transactions for path: /rooms/297054033/ownerId. Affected: /rooms/297054033/ownerId
D/RepoOperation(10312): Aborting transactions for path: /rooms/297054033/ownerName. Affected: /rooms/297054033/ownerName
D/RepoOperation(10312): Aborting transactions for path: /rooms/297054033/roomId. Affected: /rooms/297054033/roomId
D/RepoOperation(10312): Aborting transactions for path: /rooms/297054033/roomName. Affected: /rooms/297054033/roomName
D/RepoOperation(10312): Aborting transactions for path: /rooms/297054033/roomTopic. Affected: /rooms/297054033/roomTopic
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":5,"b":{"s":"ok","d":""}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44955
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=5, b={d=, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=5, b={d=, s=ok}}
D/PersistentConnection(10312): pc_0 - m response: {d=, s=ok}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Deleted 1 write(s) with writeId 3 in 0ms
D/Persistence(10312): Persisted a total of 1 rows and deleted 1 rows for a set at /rooms/297054033/isOnline in 1ms
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /rooms/297054033/ownerId in 0ms
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /rooms/297054033/ownerName in 0ms
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /rooms/297054033/roomId in 0ms
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /rooms/297054033/roomName in 0ms
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /rooms/297054033/roomTopic in 0ms
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 5ms
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=om, r=6, b={p=rooms/297054033, d={isOnline=false}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44991
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":6,"b":{"s":"ok","d":""}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44956
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=6, b={d=, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=6, b={d=, s=ok}}
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [TeacherClassSessionEventHandler] Received class event : ClassSessionEvent(ClassEventType.IGNORE, null)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Loaded a total of 1 rows for a total of 1 nodes at /rooms/297054033/isOnline in 1ms (Query: 1ms, Loading: 0ms, Serializing: 0ms)
D/PersistentConnection(10312): pc_0 - Listening on rooms/297054033/isOnline (params: {})
D/PersistentConnection(10312): pc_0 - Adding listen query: rooms/297054033/isOnline (params: {})
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=q, r=7, b={p=rooms/297054033/isOnline, h=E5z61QM0lN/U2WsOnusszCTkR8M=}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44993
D/Persistence(10312): Transaction completed. Elapsed: 7ms
D/EventRaiser(10312): Raising 1 event(s)
D/EventRaiser(10312): Raising /rooms/297054033/isOnline: VALUE: true
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Transaction completed. Elapsed: 0ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 4ms
D/Persistence(10312): Loaded a total of 7 rows for a total of 7 nodes at /rooms/297054033 in 1ms (Query: 0ms, Loading: 0ms, Serializing: 1ms)
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=g, r=8, b={p=rooms/297054033, q={}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44986
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":7,"b":{"s":"ok","d":{}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44968
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=7, b={d={}, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=7, b={d={}, s=ok}}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Transaction completed. Elapsed: 0ms
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":8,"b":{"s":"ok","d":{"isOnline":true,"ownerId":"MuZNMPbStLcZqXCHYZ6glh2tiSp2","ownerName":"Nick De Vries","roomId":"bBgxNHrTJ8VkZEI0AVEB","roomName":"297054033","roomTopic":"Math - Grade7","sessions":{"-OaRE5zZbsCaLwk7cczU":{"endTime":1759263227361,"startTime":"2025-09-30T20:07:10.565298Z"},"-OaRFcqkz5t9zucOOh3e":{"endTime":1759263248860,"startTime":"2025-09-30T20:13:51.408930Z"},"-OaRFhW2y14gYdUXWhWW":{"endTime":1759263258781,"startTime":"2025-09-30T20:14:10.500198Z"},"-OaRFjjmvcNEHYctsn83":{"endTime":1759263270910,"startTime":"2025-09-30T20:14:19.634256Z"},"-OaRFmjWhqcJ1h4ApBYg":{"endTime":1759263285236,"startTime":"2025-09-30T20:14:31.905997Z"},"-OaRFq6_2xmEWYnmmy3X":{"endTime":1759263293767,"startTime":"2025-09-30T20:14:45.734017Z"},"-OaUs9ifrK-0ZyLXypCz":{"endTime":1759323951672,"startTime":"2025-10-01T13:05:25.419686Z"},"-OapkkYcb5w9TtiZtHG7":{"startTime":"2025-10-05T19:04:41.961616Z"}}}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44989
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=8, b={d={sessions={-OaRE5zZbsCaLwk7cczU={startTime=2025-09-30T20:07:10.565298Z, endTime=1759263227361}, -OaRFhW2y14gYdUXWhWW={startTime=2025-09-30T20:14:10.500198Z, endTime=1759263258781}, -OaRFcqkz5t9zucOOh3e={startTime=2025-09-30T20:13:51.408930Z, endTime=1759263248860}, -OaRFq6_2xmEWYnmmy3X={startTime=2025-09-30T20:14:45.734017Z, endTime=1759263293767}, -OaUs9ifrK-0ZyLXypCz={startTime=2025-10-01T13:05:25.419686Z, endTime=1759323951672}, -OaRFjjmvcNEHYctsn83={startTime=2025-09-30T20:14:19.634256Z, endTime=1759263270910}, -OapkkYcb5w9TtiZtHG7={startTime=2025-10-05T19:04:41.961616Z}, -OaRFmjWhqcJ1h4ApBYg={startTime=2025-09-30T20:14:31.905997Z, endTime=1759263285236}}, ownerName=Nick De Vries, roomTopic=Math - Grade7, isOnline=true, ownerId=MuZNMPbStLcZqXCHYZ6glh2tiSp2, roomId=bBgxNHrTJ8VkZEI0AVEB, roomName=297054033}, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=8, b={d={sessions={-OaRE5zZbsCaLwk7cczU={startTime=2025-09-30T20:07:10.565298Z, endTime=1759263227361}, -OaRFhW2y14gYdUXWhWW={startTime=2025-09-30T20:14:10.500198Z, endTime=1759263258781}, -OaRFcqkz5t9zucOOh3e={startTime=2025-09-30T20:13:51.408930Z, endTime=1759263248860}, -OaRFq6_2xmEWYnmmy3X={startTime=2025-09-30T20:14:45.734017Z, endTime=1759263293767}, -OaUs9ifrK-0ZyLXypCz={startTime=2025-10-01T13:05:25.419686Z, endTime=1759323951672}, -OaRFjjmvcNEHYctsn83={startTime=2025-09-30T20:14:19.634256Z, endTime=1759263270910}, -OapkkYcb5w9TtiZtHG7={startTime=2025-10-05T19:04:41.961616Z}, -OaRFmjWhqcJ1h4ApBYg={startTime=2025-09-30T20:14:31.905997Z, endTime=1759263285236}}, ownerName=Nick De Vries, roomTopic=Math - Grade7, isOnline=true, ownerId=MuZNMPbStLcZqXCHYZ6glh2tiSp2, roomId=bBgxNHrTJ8VkZEI0AVEB, roomName=297054033}, s=ok}}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Loaded a total of 7 rows for a total of 7 nodes at /rooms/297054033 in 1ms (Query: 0ms, Loading: 1ms, Serializing: 0ms)
D/Persistence(10312): Transaction completed. Elapsed: 4ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Persisted a total of 1 rows and deleted 7 rows for a set at /rooms/297054033 in 0ms
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 3ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 4ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Transaction completed. Elapsed: 1ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 3ms
D/Persistence(10312): Loaded a total of 1 rows for a total of 15 nodes at /rooms/297054033/sessions in 1ms (Query: 0ms, Loading: 1ms, Serializing: 0ms)
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=g, r=9, b={p=rooms/297054033/sessions, q={vf=r, i=.key, l=1}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44981
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":9,"b":{"s":"ok","d":{"-OapkkYcb5w9TtiZtHG7":{"startTime":"2025-10-05T19:04:41.961616Z"}}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44950
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=9, b={d={-OapkkYcb5w9TtiZtHG7={startTime=2025-10-05T19:04:41.961616Z}}, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=9, b={d={-OapkkYcb5w9TtiZtHG7={startTime=2025-10-05T19:04:41.961616Z}}, s=ok}}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Loaded a total of 1 rows for a total of 15 nodes at /rooms/297054033/sessions in 0ms (Query: 0ms, Loading: 0ms, Serializing: 0ms)
D/Persistence(10312): Set 1 tracked query keys for tracked query 8 in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 5ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /rooms/297054033/sessions in 0ms
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 6ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 2ms
D/Persistence(10312): Transaction completed. Elapsed: 6ms
D/RepoOperation(10312): update: /room_presence/297054033/-OapkkYcb5w9TtiZtHG7
D/DataOperation(10312): update: /room_presence/297054033/-OapkkYcb5w9TtiZtHG7 {MuZNMPbStLcZqXCHYZ6glh2tiSp2={name=Nick De Vries, isOnline=true}}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Persisted user merge in 1ms
D/Persistence(10312): Transaction completed. Elapsed: 4ms
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=m, r=10, b={p=room_presence/297054033/-OapkkYcb5w9TtiZtHG7, d={MuZNMPbStLcZqXCHYZ6glh2tiSp2={name=Nick De Vries, isOnline=true}}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44977
D/RepoOperation(10312): Aborting transactions for path: /room_presence/297054033/-OapkkYcb5w9TtiZtHG7/MuZNMPbStLcZqXCHYZ6glh2tiSp2. Affected: /room_presence/297054033/-OapkkYcb5w9TtiZtHG7/MuZNMPbStLcZqXCHYZ6glh2tiSp2
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":10,"b":{"s":"ok","d":""}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44958
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=10, b={d=, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=10, b={d=, s=ok}}
D/PersistentConnection(10312): pc_0 - m response: {d=, s=ok}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Deleted 1 write(s) with writeId 4 in 0ms
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /room_presence/297054033/-OapkkYcb5w9TtiZtHG7/MuZNMPbStLcZqXCHYZ6glh2tiSp2 in 0ms
D/Persistence(10312): Saved new tracked query in 1ms
D/Persistence(10312): Transaction completed. Elapsed: 4ms
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=om, r=11, b={p=room_presence/297054033/-OapkkYcb5w9TtiZtHG7/MuZNMPbStLcZqXCHYZ6glh2tiSp2, d={isOnline=false}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44993
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":11,"b":{"s":"ok","d":""}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44957
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=11, b={d=, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=11, b={d=, s=ok}}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Transaction completed. Elapsed: 0ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 4ms
D/Persistence(10312): Loaded a total of 1 rows for a total of 2 nodes at /room_presence/297054033/-OapkkYcb5w9TtiZtHG7 in 0ms (Query: 0ms, Loading: 0ms, Serializing: 0ms)
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=g, r=12, b={p=room_presence/297054033/-OapkkYcb5w9TtiZtHG7, q={}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44991
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":12,"b":{"s":"ok","d":{"MuZNMPbStLcZqXCHYZ6glh2tiSp2":{"isOnline":true,"name":"Nick De Vries"}}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44943
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=12, b={d={MuZNMPbStLcZqXCHYZ6glh2tiSp2={name=Nick De Vries, isOnline=true}}, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=12, b={d={MuZNMPbStLcZqXCHYZ6glh2tiSp2={name=Nick De Vries, isOnline=true}}, s=ok}}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Loaded a total of 1 rows for a total of 2 nodes at /room_presence/297054033/-OapkkYcb5w9TtiZtHG7 in 1ms (Query: 0ms, Loading: 0ms, Serializing: 1ms)
D/Persistence(10312): Transaction completed. Elapsed: 6ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Persisted a total of 1 rows and deleted 1 rows for a set at /room_presence/297054033/-OapkkYcb5w9TtiZtHG7 in 1ms
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 5ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 4ms
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [TeacherClassSessionEventHandler] Received class event : ClassSessionEvent(ClassEventType.JOINED_CLASS, ClassSession({}, 297054033, Math - Grade7, MuZNMPbStLcZqXCHYZ6glh2tiSp2, Nick De Vries, bBgxNHrTJ8VkZEI0AVEB))
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [AnalyticEventsMiddleware] Action ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STARTED, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [SendLockTabletsMsgMiddleware] Handling ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STARTED, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [Reducer] Reducing ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STARTED, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [Reducer] Reducing UpdateClassState(297054033, {})
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [Reducer] Reducing Instance of 'ResetClassStartStateAction'
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 1ms
D/Persistence(10312): Loaded a total of 1 rows for a total of 2 nodes at /room_presence/297054033/-OapkkYcb5w9TtiZtHG7 in 0ms (Query: 0ms, Loading: 0ms, Serializing: 0ms)
D/PersistentConnection(10312): pc_0 - Listening on room_presence/297054033/-OapkkYcb5w9TtiZtHG7 (params: {})
D/PersistentConnection(10312): pc_0 - Adding listen query: room_presence/297054033/-OapkkYcb5w9TtiZtHG7 (params: {})
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=q, r=13, b={p=room_presence/297054033/-OapkkYcb5w9TtiZtHG7, h=D9fbmBQzDo4xDaB9Yaq0wCjkua0=}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44927
D/Persistence(10312): Transaction completed. Elapsed: 6ms
D/EventRaiser(10312): Raising 1 event(s)
D/Persistence(10312): Starting transaction.
D/EventRaiser(10312): Raising /room_presence/297054033/-OapkkYcb5w9TtiZtHG7: VALUE: {MuZNMPbStLcZqXCHYZ6glh2tiSp2={name=Nick De Vries, isOnline=true}}
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Loaded a total of 0 rows for a total of 0 nodes at /room_session_msgs/297054033/-OapkkYcb5w9TtiZtHG7/owner in 0ms (Query: 0ms, Loading: 0ms, Serializing: 0ms)
D/PersistentConnection(10312): pc_0 - Listening on room_session_msgs/297054033/-OapkkYcb5w9TtiZtHG7/owner (params: {})
D/PersistentConnection(10312): pc_0 - Adding listen query: room_session_msgs/297054033/-OapkkYcb5w9TtiZtHG7/owner (params: {})
D/Connection(10312): conn_0 - Sending data: {t=d, d={a=q, r=14, b={p=room_session_msgs/297054033/-OapkkYcb5w9TtiZtHG7/owner, h=}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44994
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [PushartFDBMessageHandler] Presence updated : RoomUsersList({MuZNMPbStLcZqXCHYZ6glh2tiSp2: _RoomUser(MuZNMPbStLcZqXCHYZ6glh2tiSp2, Nick De Vries, true)})
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/Persistence(10312): Transaction completed. Elapsed: 6ms
D/EGL_emulation(10312): app_time_stats: avg=18.15ms min=5.11ms max=64.15ms count=54
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":13,"b":{"s":"ok","d":{}}}}
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44845
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=13, b={d={}, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=13, b={d={}, s=ok}}
D/Persistence(10312): Starting transaction.
D/WebSocket(10312): ws_0 - ws message: {"t":"d","d":{"r":14,"b":{"s":"ok","d":{}}}}
D/Persistence(10312): Transaction completed. Elapsed: 0ms
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: 44998
D/WebSocket(10312): ws_0 - HandleNewFrameCount: 1
D/WebSocket(10312): ws_0 - handleIncomingFrame complete frame: {t=d, d={r=14, b={d={}, s=ok}}}
D/Connection(10312): conn_0 - received data message: {r=14, b={d={}, s=ok}}
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 5ms
D/EGL_emulation(10312): app_time_stats: avg=155.28ms min=12.90ms max=1810.50ms count=13
D/EGL_emulation(10312): app_time_stats: avg=127.38ms min=5.92ms max=1318.77ms count=17
D/EGL_emulation(10312): app_time_stats: avg=446.15ms min=5.45ms max=7444.49ms count=17
D/TransportRuntime.CctTransportBackend(10312): Making request to: https://firebaselogging.googleapis.com/v0cc/log/batch?format=json_proto3
I/TransportRuntime.CctTransportBackend(10312): Status Code: 200
I/TransportRuntime.CctTransportBackend(10312): Content-Type: application/json; charset=UTF-8
I/TransportRuntime.CctTransportBackend(10312): Content-Encoding: gzip
D/WebSocket(10312): ws_0 - Reset keepAlive. Remaining: -42
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [AnalyticEventsMiddleware] Action StopClassAction(bBgxNHrTJ8VkZEI0AVEB)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [TeacherSessionsMiddleware] Handling StopClassAction(bBgxNHrTJ8VkZEI0AVEB)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [PushartClient] Shutting pushart down : reason=null
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [PushartClient] Setting DB Offline
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [AnalyticEventsMiddleware] Action ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STOPPED, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [SendLockTabletsMsgMiddleware] Handling ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STOPPED, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [Reducer] Reducing ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STOPPED, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [Reducer] Reducing Instance of 'ResetClassStartStateAction'
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/PersistentConnection(10312): pc_0 - Connection interrupted for: repo_interrupt
D/Connection(10312): conn_0 - closing realtime connection
D/WebSocket(10312): ws_0 - websocket is being closed
D/PersistentConnection(10312): pc_0 - Got on disconnect due to OTHER
D/EventRaiser(10312): Raising 1 event(s)
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /rooms/297054033/sessions/-OapkkYcb5w9TtiZtHG7/endTime in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 6ms
D/RepoOperation(10312): Aborting transactions for path: /rooms/297054033/sessions/-OapkkYcb5w9TtiZtHG7/endTime. Affected: /rooms/297054033/sessions/-OapkkYcb5w9TtiZtHG7/endTime
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /rooms/297054033/isOnline in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 3ms
D/RepoOperation(10312): Aborting transactions for path: /rooms/297054033/isOnline. Affected: /rooms/297054033/isOnline
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Persisted a total of 1 rows and deleted 0 rows for a set at /room_presence/297054033/-OapkkYcb5w9TtiZtHG7/MuZNMPbStLcZqXCHYZ6glh2tiSp2/isOnline in 0ms
D/Persistence(10312): Transaction completed. Elapsed: 3ms
D/RepoOperation(10312): Aborting transactions for path: /room_presence/297054033/-OapkkYcb5w9TtiZtHG7/MuZNMPbStLcZqXCHYZ6glh2tiSp2/isOnline. Affected: /room_presence/297054033/-OapkkYcb5w9TtiZtHG7/MuZNMPbStLcZqXCHYZ6glh2tiSp2/isOnline
D/EventRaiser(10312): Raising 2 event(s)
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 1ms
D/PersistentConnection(10312): pc_0 - unlistening on rooms/297054033/isOnline (params: {})
D/PersistentConnection(10312): pc_0 - removing query rooms/297054033/isOnline (params: {})
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [PushartClient] Database offline
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/EventRaiser(10312): Raising /.info/connected: VALUE: false
D/EventRaiser(10312): Raising /rooms/297054033/isOnline: VALUE: false
D/EventRaiser(10312): Raising /room_presence/297054033/-OapkkYcb5w9TtiZtHG7: VALUE: {MuZNMPbStLcZqXCHYZ6glh2tiSp2={name=Nick De Vries, isOnline=false}}
D/Persistence(10312): Transaction completed. Elapsed: 12ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 0ms
D/PersistentConnection(10312): pc_0 - unlistening on room_presence/297054033/-OapkkYcb5w9TtiZtHG7 (params: {})
D/PersistentConnection(10312): pc_0 - removing query room_presence/297054033/-OapkkYcb5w9TtiZtHG7 (params: {})
D/Persistence(10312): Transaction completed. Elapsed: 3ms
D/Persistence(10312): Starting transaction.
D/Persistence(10312): Saved new tracked query in 1ms
D/PersistentConnection(10312): pc_0 - unlistening on room_session_msgs/297054033/-OapkkYcb5w9TtiZtHG7/owner (params: {})
D/PersistentConnection(10312): pc_0 - removing query room_session_msgs/297054033/-OapkkYcb5w9TtiZtHG7/owner (params: {})
D/EGL_emulation(10312): app_time_stats: avg=1374.64ms min=4.48ms max=4055.06ms count=3
D/Persistence(10312): Transaction completed. Elapsed: 4ms
D/WebSocket(10312): ws_0 - closed
D/EGL_emulation(10312): app_time_stats: avg=207.33ms min=3.50ms max=3524.63ms count=20
D/PersistentConnection(10312): pc_0 - Connection interrupted for: connection_idle
D/ConnectionRetryHelper(10312): No existing retry attempt to cancel
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [AnalyticEventsMiddleware] Action StartClassAction(bBgxNHrTJ8VkZEI0AVEB)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [TeacherSessionsMiddleware] Handling StartClassAction(bBgxNHrTJ8VkZEI0AVEB)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [AnalyticEventsMiddleware] Action ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STARTING, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [SendLockTabletsMsgMiddleware] Handling ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STARTING, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [Reducer] Reducing ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STARTING, true)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [PushartClient] Connecting to DB
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/PersistentConnection(10312): pc_0 - Connection no longer interrupted for: repo_interrupt
D/EventRaiser(10312): Raising 1 event(s)
D/EventRaiser(10312): Raising /.info/connected: VALUE: false
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [PushartClient] DBstate=false
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/EGL_emulation(10312): app_time_stats: avg=7528.21ms min=3.99ms max=120326.38ms count=16
D/EGL_emulation(10312): app_time_stats: avg=16.66ms min=13.95ms max=19.96ms count=60
D/EGL_emulation(10312): app_time_stats: avg=16.60ms min=14.19ms max=18.77ms count=61
D/EGL_emulation(10312): app_time_stats: avg=16.68ms min=14.57ms max=19.26ms count=60
D/EGL_emulation(10312): app_time_stats: avg=16.66ms min=13.15ms max=20.33ms count=60
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [PushartClient] Shutting pushart down : reason=PushartErrorReason.TIMEOUT
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ ⛔ [TeacherSessionsMiddleware] Class session (Pushart) Error : PushartErrorReason.TIMEOUT
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [PushartClient] Shutting pushart down : reason=null
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [AnalyticEventsMiddleware] Action ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STOPPED, false)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [SendLockTabletsMsgMiddleware] Handling ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STOPPED, false)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [Reducer] Reducing ChangeClassroomStateAction(bBgxNHrTJ8VkZEI0AVEB, ClassState.STOPPED, false)
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (10312): │ 🐛 [Reducer] Reducing Instance of 'ResetClassStartStateAction'
I/flutter (10312): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/EGL_emulation(10312): app_time_stats: avg=17.24ms min=13.17ms max=41.01ms count=58